Support for the Freedesktop.org XDG Base Directory Specification
Categories
(Core :: XPCOM, enhancement, P2)
Tracking
()
Tracking | Status | |
---|---|---|
relnote-firefox | --- | ? |
People
(Reporter: contact, Assigned: gerard-majax)
References
(Depends on 6 open bugs, Blocks 4 open bugs, )
Details
(Keywords: parity-chrome)
Attachments
(6 files, 4 obsolete files)
Reporter | ||
Comment 2•20 years ago
|
||
Updated•20 years ago
|
Comment 4•19 years ago
|
||
Reporter | ||
Comment 5•19 years ago
|
||
Comment 7•17 years ago
|
||
Comment 9•17 years ago
|
||
Comment 10•17 years ago
|
||
Comment 11•17 years ago
|
||
Comment 12•17 years ago
|
||
Comment 13•17 years ago
|
||
Comment 14•17 years ago
|
||
Comment 16•17 years ago
|
||
Comment 17•16 years ago
|
||
Comment 18•15 years ago
|
||
Comment 19•15 years ago
|
||
Comment 21•14 years ago
|
||
Comment 22•14 years ago
|
||
Comment 23•14 years ago
|
||
Comment 24•14 years ago
|
||
Comment 25•14 years ago
|
||
Comment 26•13 years ago
|
||
Comment 27•13 years ago
|
||
Updated•13 years ago
|
Comment 28•13 years ago
|
||
Comment 29•12 years ago
|
||
Comment 30•12 years ago
|
||
Comment 31•12 years ago
|
||
Comment 32•12 years ago
|
||
Comment 33•12 years ago
|
||
Comment 34•12 years ago
|
||
Comment 35•12 years ago
|
||
Comment 36•12 years ago
|
||
Comment 37•12 years ago
|
||
Comment 38•12 years ago
|
||
Comment 39•12 years ago
|
||
Comment 40•12 years ago
|
||
Comment 41•12 years ago
|
||
Comment 42•12 years ago
|
||
Comment 43•12 years ago
|
||
Updated•12 years ago
|
Updated•12 years ago
|
Comment 44•12 years ago
|
||
Updated•12 years ago
|
Comment 45•12 years ago
|
||
Comment 46•12 years ago
|
||
Comment 47•12 years ago
|
||
Comment 48•12 years ago
|
||
Comment 49•12 years ago
|
||
Comment 50•12 years ago
|
||
Comment 51•12 years ago
|
||
Comment 52•12 years ago
|
||
Comment 53•12 years ago
|
||
Comment 54•12 years ago
|
||
Comment 55•12 years ago
|
||
Comment 56•12 years ago
|
||
Comment 57•12 years ago
|
||
Comment 58•12 years ago
|
||
Comment 59•12 years ago
|
||
Comment 60•12 years ago
|
||
Comment 61•12 years ago
|
||
Comment 62•12 years ago
|
||
Comment 63•12 years ago
|
||
Comment 64•12 years ago
|
||
Comment 65•12 years ago
|
||
Comment 66•12 years ago
|
||
Comment 67•12 years ago
|
||
Comment 68•12 years ago
|
||
Comment 69•12 years ago
|
||
Comment 70•12 years ago
|
||
Comment 71•12 years ago
|
||
Comment 72•12 years ago
|
||
Comment 73•12 years ago
|
||
Comment 74•12 years ago
|
||
Comment 75•12 years ago
|
||
Comment 76•12 years ago
|
||
Comment 77•12 years ago
|
||
Comment 78•12 years ago
|
||
Comment 79•12 years ago
|
||
Comment 80•12 years ago
|
||
Comment 81•12 years ago
|
||
Comment 82•12 years ago
|
||
Comment 83•12 years ago
|
||
Updated•10 years ago
|
Comment 86•9 years ago
|
||
Comment 87•9 years ago
|
||
Comment 88•9 years ago
|
||
Comment 89•7 years ago
|
||
Comment 90•7 years ago
|
||
Comment 91•6 years ago
|
||
Comment 92•6 years ago
|
||
Updated•6 years ago
|
Comment hidden (advocacy) |
Comment hidden (advocacy) |
Comment 95•6 years ago
|
||
Comment hidden (advocacy) |
Comment hidden (advocacy) |
Comment hidden (advocacy) |
Comment hidden (advocacy) |
Comment hidden (advocacy) |
Updated•5 years ago
|
Comment 101•5 years ago
|
||
I will kindly re-ask what EdΓͺnis Freindorfer Azevedo asked on Phabricator's D6995 on Jan 6, 2020:
"@glandium Hello! Can we try again to check on this? I can still work on this if more changes are required."
Comment hidden (metoo) |
Comment hidden (metoo) |
Comment hidden (metoo) |
Comment hidden (metoo) |
Comment hidden (metoo) |
Comment 107•4 years ago
|
||
There was some discussion on Matrix/Element over risk/benefit of taking the change:
Pro:
- Makes Firefox behave like other software when backing up things, no need to special case .mozilla etc.
- XDG is supported by competing browsers.
- Easier to store profile / caches in a specific location without having to symlink things around.
Contra:
- Third party software that expects to find Firefox profiles (only) in .mozilla will break.
- If XDG dirs get unset or change unexpectedly, Firefox will no longer find the profile and the user might have a hard to diagnose dataloss.
In general I feel like the current patches are a solution that's workable and will be seamless for the majority of users, and makes us a better behaved Linux citizen, but it's unavoidable that a change like this will break some people's setup as well, and not go far enough for others (because we don't force-migrate etc).
Comment 108•4 years ago
|
||
To address some of the cons:
By default, Firefox could default to .mozilla similarly to how git works, however, this would mean that having .mozilla in a different location would only be available to those who explicitly want that to be the case.
Also most people leave the XDG environment variables unused (and just use the default locations, .config, .local/share, ...) and for those who explicitly set them, the unsetting of those variables shouldn't be a big problem, at least not a problem that would be specific to Firefox (in such cases a lot of things will have an altered behaviour).
Comment 109•4 years ago
|
||
If XDG dirs get unset or change unexpectedly, Firefox will no longer find the profile and the user might have a hard to diagnose dataloss.
I half-agree with nils here. If .mozilla is detected then it should use that, if not, make the profile in XDG_CONFIG_HOME. So all new configs would be in XDG dirs, and people with existing configs wouldn't have to bother migrating or anything, unless they want to, in which case they can just mv it.
Comment 110•4 years ago
|
||
If .mozilla is detected then it should use that, if not, make the profile in XDG_CONFIG_HOME
The case described is where XDG_DATA_HOME changes or becomes unset. There would be no .mozilla because you were always in the new mode.
the unsetting of those variables shouldn't be a big problem, at least not a problem that would be specific to Firefox (in such cases a lot of things will have an altered behaviour).
There's a fair amount of other apps that don't follow the spec, and for many people the browser is one of the most important ones, hence the "hard to diagnose" concern. I have no idea if this is going to be common (I really hope not!), but experience says at least one person will hit it :)
Comment 111•4 years ago
|
||
If someone explicitly sets any XDG variables, that is on them to maintain in their system. This is something for the distribution or individual tinkerer to deal with. Sure there are applications that don't follow this, but there are many that do, and it would cause a broken system state that someone savy enough to change XDG vars would be savy enough to diagnose and fix.
This should not be a concern in supporting XDG vars, and I do agree with the use .mozilla if detected, otherwise go with the spec approach.
Comment 112•4 years ago
|
||
The case described is where XDG_DATA_HOME changes or becomes unset. There would be no .mozilla because you were always in the new mode.
Yes, a very vast majority of the time the XDG variables are set by the user, and most of that time it's not a new user, the other times it's set by someone who probably installed someone else's dotfiles and is removing random stuff, and to that I say: If you installed someone else's dotfiles and changed stuff without knowing what you're doing, stuff not working is 100% your fault and no program should willingly keep a bad functionality just to account for you.
There's a fair amount of other apps that don't follow the spec
Yep, sadly there are.
Most of the time I either try find an alternative, or in the case of firefox/steam I change my $HOME variable so it doesn't make a dotfile in my real home, then i make a symlink to where it should be. Being a native feature would be a far better solution.
And I completely agree with @me's comment.
Comment 113•4 years ago
•
|
||
As an update, I've reached out to some major distros to know if they have any feelings about this. Some highlights that came up during that discussion:
-
There's some preference for XDG_CONFIG_HOME over XDG_DATA_HOME. I believe most comments above, and the original patch, had that as well. Of course, you can always argue the other way around as well: https://bugs.chromium.org/p/chromium/issues/detail?id=129861
There's some good discussion there about what XDG_DATA_HOME means exactly, and the fact that the default is ".local/share" leads to me to tend to agree that it probably is not supposed to be the kind of "user data" that a profile would be even though the XDG spec isn't worded very clearly there. -
The push to use XDG_DATA_HOME instead was related to how sandboxing interacts with this, but this revealed a bug. I mentioned XDG_CONFIG_PATH in comment 83 above, and that's actually what the code uses, but this doesn't exist! It should have been XDG_CONFIG_HOME. I made a mistake in bug 1399392 but this wasn't caught because there's a fallback to the default if the env var isn't set. I'll file a follow-up for that.
-
I understand the argument that it would be annoying if Firefox uses XDG_DATA_HOME and Chromium uses XDG_CONFIG_HOME. Unfortunately for security that would mean either hunting down all the subdirs that are used in practice and whitelisting those (instead of the root), or adding support for blacklisting in the sandboxing code (ugh!). That means the patch in here wouldn't be enough to fix this problem, if we decide we want XDG_CONFIG_HOME after all.
Comment 114•4 years ago
|
||
(In reply to Gian-Carlo Pascutto [:gcp] from comment #113)
As an update, I've reached out to some major distros to know if they have any feelings about this. Some highlights that came up during that discussion:
I don't have the URLs handy but what I read on various mailing lists was to think of it as:
XDG_CONFIG_HOME
is for stuff that may depend on things which vary from system to system like monitor resolution and which is less worthy of tears if lost. (eg. persisted GUI settings like window geometry and toolbar setup)XDG_DATA_HOME
is for userdata that isn't accessed via open/save dialogs, like browser bookmarks or the contents of desktop sticky notes or a personal wiki.
Comment 115•4 years ago
|
||
...and I just realized that I already said almost the same thing 9 years ago. Sorry about that.
(I really shouldn't go online when I had a bad night's sleep. It keeps me from double-checking what I say/write.)
Comment 116•4 years ago
|
||
There's some preference for XDG_CONFIG_HOME over XDG_DATA_HOME.
Data such as crash reports, downloaded extensions, and website storage should mostly go under XDG_DATA_HOME. I would also argue that bookmarks are more about user data than user configuration.
Personally, I would assume that what should be stored in ${XDG_CONFIG_HOME}/firefox are: prefs.js, handlers.json, pkcs11.txt, extension-settings.json. I don't know if containers.json is shipped with Firefox or provided by the relevant extension. That would also be about config.
The rest in my opinion should end up under ${XDG_DATA_HOME}/firefox.
Some users are using git to version their config directories, but they don't want to do the same for data. Some users would like to only backup their $HOME/.config directory, but not the $HOME/.local data directory. YMMV.
It's a minor point, but I feel it's at least worth taking an informed decision now before landing this, rather than risking another future migration to re-adjust.
Comment 117•4 years ago
|
||
Some users are using git to version their config directories, but they don't want to do the same for data. Some users would like to only backup their $HOME/.config directory, but not the $HOME/.local data directory. YMMV.
Thank you for mentioning this, I happen to be one such person!
A good rule of thumb to follow is moving configuration into its own files. Configuration should be anything that's user-driven, and these config files shouldn't hold program state.
An example of state is that Firefox shouldn't note the last tabs I had open within a configuration file. They should be in a file dedicated to that purpose. Otherwise, it would would create a non-permanent change to a permanent config file. I don't know if Firefox currently does this to be clear, this is just an illustrative example. I know some history Linux software like KDE does it like that currently, but they are committed to work it away in the next major version.
So care should be taken to separate configuration, program state, data and cache. There is a separate XDG folder for caches specifically, though I'm not sure if any data that Firefox generates fits under XDG_CACHE_HOME. Rarely do programs use this from what I've seen, since most data is to some degree essential; most stick to XDG_CONFIG_HOME and XDG_DATA_HOME from the scheme.
Comment 118•4 years ago
•
|
||
There is no point in discussing splitting up things between XDG_CONFIG_HOME and XDG_DATA_HOME, and the reason why has been repeatedly explained in the comments.
We respect XDG_CACHE_HOME already.
Comment 119•4 years ago
|
||
XDG_DATA_HOME is for userdata that isn't accessed via open/save dialogs, like browser bookmarks or the contents of desktop sticky notes or a personal wiki.
I thought this as well, which is why I proposed that, but as already explained above, this doesn't appear to be correct. See for example https://bugs.chromium.org/p/chromium/issues/detail?id=129861#c8. The XDG spec seems to assume the reader has a substantial background to be able to understand what is meant there, which is really unfortunate.
Comment 120•4 years ago
|
||
(In reply to Gian-Carlo Pascutto [:gcp] from comment #119)
XDG_DATA_HOME is for userdata that isn't accessed via open/save dialogs, like browser bookmarks or the contents of desktop sticky notes or a personal wiki.
I thought this as well, which is why I proposed that, but as already explained above, this doesn't appear to be correct. See for example https://bugs.chromium.org/p/chromium/issues/detail?id=129861#c8. The XDG spec seems to assume the reader has a substantial background to be able to understand what is meant there, which is really unfortunate.
When he makes that argument, he ignores four things:
-
The XDG spec's goal is to eliminate the forest of dotdirs in the user's home directory but, if
XDG_DATA_DIR
is meant to be for files that are conceptually read-only, then it provides no alternative for per-user userdata files that aren't conceptually read-only... suggesting that it's interpreting the FHS's definition of/usr/share
as read-only, not as a property ofshare
, but as a property of it being inside/usr
rather than/home
.This also makes sense when you look at how, in the modern day, applications generally don't bother to draw a big distinction between "I installed this plugin in a per-user location" and "I stored some bulky userdata in a per-user location" beyond the Windows-inspired one of "Is this too bulky to inflict on profile-roaming?" ...a distinction the XDG spec makes no mention of.
...unless they expected to follow the Windows "convention" of cluttering up
My Documents
with tons of garbage likeMy Saved Games
that really should go inApplication Data
because nobody's going to want to browse to it with Explorer or an Open/Save dialog under normal operation. (Microsoft really needs to better educate their designers on the conceptual separation between document-centric and application-centric desktop paradigms and how to make them coexist harmoniously.) -
The XDG trash specification says to put a user's trash folder at
$XDG_DATA_HOME/Trash
. That's about as opposite to "read-only data" as you can get. -
Chrome may put its userdata in
XDG_CONFIG_HOME
, but Linux-first WebKit-based browsers like LuaKit and Midori put their userdata inXDG_DATA_HOME
. -
The "I already had this discussion" post he links is from 2009 and a lot has changed since he wrote "I looked in my ~/.local/share and the only things stored there are .desktop files and associated data. It doesn't look like any app stores "real" user data there."
For example:
-
KDE 5 chose to use
~/.local/share
in the manner I described when they broke apart the monolithic~/.kde
from KDE 4 and earlier. -
The decision has already been made in the world of games and they chose to agree with me.
-
The vast majority of Unity games that don't have their game-saving redirected by something like Steam will store their
prefs
file (stuff like keybindings and resolution settings) in$XDG_CONFIG_HOME/.unity3d/<developer>/<game>
and their userdata in either$XDG_DATA_HOME/<developer>/<game>
or$XDG_DATA_HOME/<game>
. The ones that don't, which store their userdata alongsideprefs
, appear to be consistently using older versions of Unity. (For anyone not familiar with the game development ecosystem, Unity is the most popular game engine in use by a large margin.) -
The Godot game engine (the most promising open-source competitor to Unity) stores userdata at
~/.local/share/godot/app_userdata/<game>
. -
SDL 2, which is pushed by Valve as the platform abstraction all game engines should sit on top of, directs games to save userdata in
XDG_DATA_HOME
viaSDL_GetPrefPath
. (SDL_GetPrefPath
is explicitly documented as being the only location an application is allowed to assume to be writable, intended for both prefs and userdata, and the only alternative isSDL_GetBasePath
which is intended to resolve to something like/usr/share
.)
-
-
As mentioned, Linux-first WebKit-based browsers like LuaKit and Midori put their userdata in
XDG_DATA_HOME
, as do the Comix and MComic CBZ/CBR viewers, which also have a user bookmarks system. (Note that Comix saw its last release in 2009, the year he said he couldn't find any examples of programs doing it that way.) -
GVFS, GNOME's bundle of virtual filesystem backends for GTK's GIO abstraction, uses
~/.local/share/gvfs-metadata/
to store metadata you attach to files using applications like Nautilus. -
As a few more concrete counterexamples to his claim, Midnight Commander (The orthodox file manager that's as well-known on Unixy OSes as Norton Commander was on DOS), NeoVim (The Vim fork trying to be the Phoenix/Firebird/Firefox to Vim's Mozilla Suite), the Geeqie image viewer (a maintained fork of GQView), and the Parcellite clipboard manager popular on lightweight X11 desktops are all examples of non-game applications that store conceptually non-read-only userdata in
XDG_DATA_HOME
.
Comment 121•4 years ago
|
||
Thanks, that's a nice overview.
Comment 122•4 years ago
|
||
Well, when I compare a content of ~/.local/share and ~/.config on my box I clearly see that most of desktop applications use ~/.config to store the data, while some of them use both (KDE/Plasma/mc/vlc...).
There's the list, Fedora 32 system:
~/.config
abrt
akonadi
Atom
autostart
autostart-scripts
baloofilerc
bluedevilglobalrc
caja
caja-actions
cef_user_data
chromium
configstore
dconf
deepin
devcert
d-feet
emaildefaults
emailidentities
enchant
eog
epiphany
evince
evolution
fedora-plasma-cacherc
fedoraproject.org
filezilla
fontconfig
gatsby
gconf
gedit
GIMP
gnome-boxes
gnome-control-center
gnome-games
gnome-initial-setup-done
gnome-session
gnote
goa-1.0
google-chrome
gtk-2.0
gtk-3.0
gtk-4.0
gtkrc
gtkrc-2.0
gwenviewrc
hexchat
htop
ibus
imsettings
Intel
kactivitymanagerdrc
kactivitymanagerd-statsrc
kateschemarc
kcmfonts
kcminputrc
kcmshell5rc
kconf_updaterc
kded5rc
kdeglobals
kglobalshortcutsrc
khotkeysrc
kmail2rc
kmailsearchindexingrc
kmixrc
knfsshare
konq_history
konquerorrc
konsolerc
korgacrc
krunnerrc
kscreenlockerrc
ksmserverrc
ktimezonedrc
kwinrc
kwinrulesrc
kxkbrc
libaccounts-glib
libreoffice
libvirt
mc
menus
mimeapps.list
mozilla
mpv
nautilus
pavucontrol.ini
pdfmod
phishingurlrc
pipewire-media-session
plasma-localerc
plasma-nm
plasmanotifyrc
plasmashellrc
powerdevilrc
powermanagementprofilesrc
pulse
QMatrixClient
QtProject.conf
sealert.conf
session
specialmailcollectionsrc
startupconfig
startupconfigfiles
startupconfigkeys
systemsettingsrc
Thunar
totem
transmission
Trolltech.conf
VirtualBox
vlc
webengineurlinterceptoradblockrc
wireshark
xfce4
xsettingsd
yelp
~/.local/share
akonadi
applications
apps
backgrounds
baloo
contacts
dde-osd
deepin
evolution
flatpak
folks
gegl-0.4
gnome-settings-daemon
gnome-shell
grilo-plugins
gsettings-data-convert
gvfs-metadata
ibus-typing-booster
icc
icons
kactivitymanagerd
kded5
keyrings
klipper
konsole
kscreen
kwalletd
kxmlgui5
mc
nautilus
pki
qrenderdoc
RecentDocuments
recently-used.xbel
rhythmbox
sounds
Steam
themes
totem
tracker
Trash
user-places.xbel
virtualenv
vlc
vulkan
webkitgtk
xorg
Comment 123•4 years ago
|
||
btw. I don't think the question is "What's the most obvious place where to put the config" but "Do we want to follow that".
Comment hidden (advocacy) |
Comment 125•4 years ago
|
||
To be honest, I don't really care if you follow the specification, all I care about is not having an entire folder in my home for a single software directory, and that's probably the case for most people.
So you can just move ~/.mozilla
to ~/.local/share/mozilla
and most people people will be happy.
Comment 126•4 years ago
|
||
That would be a very... hacky solution, to say the least.
So you can just move ~/.mozilla to ~/.local/share/mozilla
How would you suggest migrating? What about people who don't have ~/.local/share (Controlled by XDG_DATA_HOME
, a part of the spec, which you "don't care about")
Moving from one hard-coded location to another hard-coded location is quite literally just moving the problem (since then .local/share would be the dotfile made by mozilla apps, and only mozilla apps (for me!))
and most people people will be happy.
Incorrect. Most people are happy with how it is right now. Do not take this thread or your beliefs as the majority opinion.
If you're going to move it, you're going to have to make everyone who wants it moved happy, as well as keeping the people who don't care happy.
So, I'm not sure if I already said this, or if it contradicts something I already said here, but my proposed solution would be:
If ~/.mozilla
exists, great! Use it.
If it doesn't exist, use $XDG_DATA_HOME/mozilla
(if the var is unset fall back to ~/.local/share/mozilla
) as the config location.
This means that all new configs will be in XDG_DATA, and all existing configs won't have to bother moving (Unless the user does it manually)
As an example, in sh, this would be as simple as
# existing configs
if [ -d "$HOME/.mozilla" ]; then
CONFIG_DIR=$HOME/.mozilla
else # non-existing or new configs
CONFIG_DIR=${XDG_DATA_HOME:=$HOME/.local/share}/mozilla
fi
# if the dir doesn't exist
mkdir -p "$CONFIG_DIR"
Comment 127•4 years ago
|
||
I just want to note that the implementation in the Phabricator D6995 patch has been approved by Martin StrΓ‘nskΓ½ [:stransky] and is awaiting review from Mike Hommey [:glandium].
Comment 128•4 years ago
|
||
(In reply to gk from comment #126)
That would be a very... hacky solution, to say the least.
So you can just move ~/.mozilla to ~/.local/share/mozilla
How would you suggest migrating? What about people who don't have ~/.local/share (Controlled by
XDG_DATA_HOME
, a part of the spec, which you "don't care about")Moving from one hard-coded location to another hard-coded location is quite literally just moving the problem (since then .local/share would be the dotfile made by mozilla apps, and only mozilla apps (for me!))
and most people people will be happy.
Incorrect. Most people are happy with how it is right now. Do not take this thread or your beliefs as the majority opinion.
If you're going to move it, you're going to have to make everyone who wants it moved happy, as well as keeping the people who don't care happy.
So, I'm not sure if I already said this, or if it contradicts something I already said here, but my proposed solution would be:
If
~/.mozilla
exists, great! Use it.If it doesn't exist, use
$XDG_DATA_HOME/mozilla
(if the var is unset fall back to~/.local/share/mozilla
) as the config location.This means that all new configs will be in XDG_DATA, and all existing configs won't have to bother moving (Unless the user does it manually)
As an example, in sh, this would be as simple as
# existing configs if [ -d "$HOME/.mozilla" ]; then CONFIG_DIR=$HOME/.mozilla else # non-existing or new configs CONFIG_DIR=${XDG_DATA_HOME:=$HOME/.local/share}/mozilla fi # if the dir doesn't exist mkdir -p "$CONFIG_DIR"
Ah, I meant most people that are annoyed by the ~/mozilla
dir will be happy.
Also your idea is much better.
Comment 129•4 years ago
|
||
(In reply to Tadej JaneΕΎ from comment #127)
I just want to note that the implementation in the Phabricator D6995 patch has been approved by Martin StrΓ‘nskΓ½ [:stransky] and is awaiting review from Mike Hommey [:glandium].
Oh, I wasn't aware of that.
Thanks for the reminder.
Comment 130•4 years ago
|
||
Hi Mike! The patch is waiting on a second review from you. Thanks.
Comment hidden (me-too) |
Updated•4 years ago
|
Comment 132•4 years ago
|
||
I tried contacting Mike a few times, but sadly I haven't heard back so far.
Comment 133•4 years ago
|
||
That's unfortunate. Can it be reassigned to someone who can get on it quickly?
Comment hidden (off-topic) |
Comment hidden (me-too) |
Comment hidden (advocacy) |
Comment hidden (off-topic) |
Comment hidden (off-topic) |
Comment hidden (off-topic) |
Comment hidden (off-topic) |
Comment 141•4 years ago
|
||
I looked at this again because we were fixing bug 1672421. As explained in comment 89 and comment 113, we can't use XDG_CONFIG_HOME because of how it interacts with sandboxing, at least not without adding blacklisting support to the sandboxing code.
Currently the sandbox allows reading XDG_CONFIG_HOME (bug 1672421 existing doesn't change this because the fallback there worked) for various GTK related libraries that are loaded in web content. While these eventually might go away (bug 1635451 and bug 1129492), we still need those to work for now. So if you put the profiles in that dir, a compromised web content process could read all cookies, stored passwords, etc. That's bad.
I thought I looked at an earlier version of this patch using XDG_DATA_HOME, but the current one seems to be using XDG_CONFIG_HOME so that can't land - it would open up security holes.
If we want XDG_CONFIG_HOME, which seems to have a slight preference (but see comment 120 for some arguments why XDG_DATA_HOME would be reasonable too), the sandbox needs a way to overlay a blacklist (for the profile dir...) onto its whitelist.
Comment 142•4 years ago
|
||
If using XDG_CONFIG_HOME
isn't an option now, and XDG_DATA_HOME
is arguably a better option anyway, can we skip the yak shaving and just use XDG_DATA_HOME
? For most users the difference is negligible anyway, and as explained in the prior comment, this scheme follows conventions set by most Linux-first applications (and therefore makes things like git-based backups of configuration feasible).
If there is still appetite for using XDG_CONFIG_HOME
, I think this can be done in the future with a more fine comb to split apart actual application/config data, assuming this original issue ever gets fixed.
Comment 143•4 years ago
|
||
(In reply to tm from comment #142)
If using
XDG_CONFIG_HOME
isn't an option now, andXDG_DATA_HOME
is arguably a better option anyway, can we skip the yak shaving and just useXDG_DATA_HOME
? For most users the difference is negligible anyway, and as explained in the prior comment, this scheme follows conventions set by most Linux-first applications (and therefore makes things like git-based backups of configuration feasible).If there is still appetite for using
XDG_CONFIG_HOME
, I think this can be done in the future with a more fine comb to split apart actual application/config data, assuming this original issue ever gets fixed.
I don't know if devs will accept using one of them from opinions alone. As you can see, most comments here are me-too asking for this feature and some topics are outdated. My first patch used XDG_DATA_HOME
, but due to interpretation issues about the spec (version 0.7), it could not go forward. Now, we have version 0.8 that also has a new variable XDG_STATE_HOME
and (imo) further endorses using XDG_DATA_HOME
how we are trying to do here (and used by other apps, as [comment 120])(https://bugzilla.mozilla.org/show_bug.cgi?id=259356#c120).
Keep in mind that version 0.8 was released in 08th May 2021
, while 0.7 is from 24th November 2010
. My first patch is from 2018. I think we could use XDG_DATA_HOME
considering the newly spec. Given that we can agree on this, it takes 1 minute to replace the use of XDG_CONFIG_HOME
by XDG_DATA_HOME
on phabricator. I know nothing about the sandbox, though. Probably a headache for the future.
Comment 144•4 years ago
|
||
Reading the comments here, I agree with XDG_DATA_HOME
proponents. XDG_DATA_HOME
is arguably a better place to put Firefox if you guys can't split application from user data.
It's unusual, but much better than the status quo.
Comment 145•4 years ago
|
||
If using XDG_CONFIG_HOME isn't an option now, and XDG_DATA_HOME is arguably a better option anyway, can we skip the yak shaving and just use XDG_DATA_HOME?
It's not an option "now" because a feature isn't implemented. We can implement the feature, or it might arrive as a side effect of other work (bug bug 1129492). If we make a bad pick for the dir and want to change it later on, we'll end up breaking Unix admin's scripting twice, and cause all the code to have to handle 3 cases. Or we end up being the odd one out in .local/share and annoying everyone.
Given that the distro maintainers (...who are also actively working on Firefox for Linux, making their opinion rather relevant to me) said they preferred XDG_CONFIG_HOME, I think I'm going to look at how hard it is exactly to add blacklisting to the sandbox, before we "rush" (ahem π) to a solution here. I can also confirm that I have about 10x as many apps in .config, and notably a lot of the crossplatform apps that have similar problems with the config/data distinction are in .config.
I'm going to remove the needinfo for glandium. I've talked to him about this bug before, and while he doesn't oppose either solution on technical grounds, he's not willing and/or able to deal with the fallout that will likely result from this change, especially given that the benefit is marginal. I might be willing to live with the consequences of fixing this and glue everything we break in the process, but then I'd prefer to have the major external contributors to Firefox on Linux on board with the change, and it looks like that means XDG_CONFIG_HOME.
Comment 146•4 years ago
|
||
(In reply to Gian-Carlo Pascutto [:gcp] from comment #145)
Given that the distro maintainers (...who are also actively working on Firefox for Linux, making their opinion rather relevant to me) said they preferred XDG_CONFIG_HOME, I think I'm going to look at how hard it is exactly to add blacklisting to the sandbox, before we "rush" (ahem π) to a solution here. I can also confirm that I have about 10x as many apps in .config, and notably a lot of the crossplatform apps that have similar problems with the config/data distinction are in .config.
For me the numbers are about the same, and quite a few applications have entries in both, but I use few crossplatform apps and most of them have been banished to hand-restricted flatpaks - except Firefox ;)
I understand there are a lot of opinions to consider of course, it just seemed like you posed the two as real options in your first comment; the voice of distro maintainers wasn't clear in the bits of the thread I'd seen, I've only followed the last two years or so of this "rush".
I'm obviously biased towards using DATA_HOME
, so I thought I'd ask the obvious question. Thanks for the explanation :)
Assignee | ||
Comment 147•4 years ago
|
||
(In reply to EdΓͺnis Freindorfer Azevedo from comment #143)
(In reply to tm from comment #142)
If using
XDG_CONFIG_HOME
isn't an option now, andXDG_DATA_HOME
is arguably a better option anyway, can we skip the yak shaving and just useXDG_DATA_HOME
? For most users the difference is negligible anyway, and as explained in the prior comment, this scheme follows conventions set by most Linux-first applications (and therefore makes things like git-based backups of configuration feasible).If there is still appetite for using
XDG_CONFIG_HOME
, I think this can be done in the future with a more fine comb to split apart actual application/config data, assuming this original issue ever gets fixed.I don't know if devs will accept using one of them from opinions alone. As you can see, most comments here are me-too asking for this feature and some topics are outdated. My first patch used
XDG_DATA_HOME
, but due to interpretation issues about the spec (version 0.7), it could not go forward. Now, we have version 0.8 that also has a new variableXDG_STATE_HOME
and (imo) further endorses usingXDG_DATA_HOME
how we are trying to do here (and used by other apps, as [comment 120])(https://bugzilla.mozilla.org/show_bug.cgi?id=259356#c120).Keep in mind that version 0.8 was released in
08th May 2021
, while 0.7 is from24th November 2010
. My first patch is from 2018. I think we could useXDG_DATA_HOME
considering the newly spec. Given that we can agree on this, it takes 1 minute to replace the use ofXDG_CONFIG_HOME
byXDG_DATA_HOME
on phabricator. I know nothing about the sandbox, though. Probably a headache for the future.
The work on the sandbox is done, and bug 1718084 should land on central soonish now. Hopefully it will stick there.
Are you still looking to work on this, now that XDG_CONFIG_HOME
should work ? If not, then I can gently steal the bug and continue your work to land this feature.
Comment 148•4 years ago
|
||
(In reply to Alexandre LISSY :gerard-majax from comment #147)
The work on the sandbox is done, and bug 1718084 should land on central soonish now. Hopefully it will stick there.
Are you still looking to work on this, now that
XDG_CONFIG_HOME
should work ? If not, then I can gently steal the bug and continue your work to land this feature.
You do not even need to ask, my friend. Go right ahead and finish the job. I would really love to see this landed too. If the sandbox fix stays, I think most is done already, but beware nevertheless.
Assignee | ||
Comment 149•4 years ago
|
||
(In reply to EdΓͺnis Freindorfer Azevedo from comment #148)
(In reply to Alexandre LISSY :gerard-majax from comment #147)
The work on the sandbox is done, and bug 1718084 should land on central soonish now. Hopefully it will stick there.
Are you still looking to work on this, now that
XDG_CONFIG_HOME
should work ? If not, then I can gently steal the bug and continue your work to land this feature.You do not even need to ask, my friend. Go right ahead and finish the job. I would really love to see this landed too. If the sandbox fix stays, I think most is done already, but beware nevertheless.
Thanks. I always prefer to ask gently, we never know why people are contributing and it might sometimes have consequences, so stealing a bug without warning can be problematic :).
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 150•4 years ago
|
||
Assignee | ||
Comment 151•4 years ago
|
||
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 152•3 years ago
|
||
Since this bug has a lot of people in Cc, I'd like to take the opportunity to ask for some feedback on third party tooling that might be dependant on the ~/.mozilla/
path and might need proper handling of $XDG_CONFIG_HOME
. As :glandium
mentionned, there's mozci/mozregression which I filed a bug for as bug 1724958, but others are likely to be out in the wild.
Comment 153•3 years ago
|
||
(In reply to Alexandre LISSY :gerard-majax from comment #152)
Since this bug has a lot of people in Cc, I'd like to take the opportunity to ask for some feedback on third party tooling that might be dependant on the
~/.mozilla/
path and might need proper handling of$XDG_CONFIG_HOME
. As:glandium
mentionned, there's mozci/mozregression which I filed a bug for as bug 1724958, but others are likely to be out in the wild.
I don't know if web-ext
depends on ~/.mozilla
but it's definitely worth checking with the addons team.
Assignee | ||
Comment 154•3 years ago
|
||
(In reply to Danny Colin [:sdk] from comment #153)
(In reply to Alexandre LISSY :gerard-majax from comment #152)
Since this bug has a lot of people in Cc, I'd like to take the opportunity to ask for some feedback on third party tooling that might be dependant on the
~/.mozilla/
path and might need proper handling of$XDG_CONFIG_HOME
. As:glandium
mentionned, there's mozci/mozregression which I filed a bug for as bug 1724958, but others are likely to be out in the wild.I don't know if
web-ext
depends on~/.mozilla
but it's definitely worth checking with the addons team.
They just confirmed me it is okay on their side.
Comment 155•3 years ago
|
||
(In reply to Danny Colin [:sdk] from comment #153)
(In reply to Alexandre LISSY :gerard-majax from comment #152)
Since this bug has a lot of people in Cc, I'd like to take the opportunity to ask for some feedback on third party tooling that might be dependant on the
~/.mozilla/
path and might need proper handling of$XDG_CONFIG_HOME
. As:glandium
mentionned, there's mozci/mozregression which I filed a bug for as bug 1724958, but others are likely to be out in the wild.I don't know if
web-ext
depends on~/.mozilla
but it's definitely worth checking with the addons team.
web-ext
relies on ProfD/extensions/, which is the standard path for extensions.
Relevant sources:
- https://github.com/mozilla/web-ext/blob/5d2b012cfe6d973f9ad47702c5c344259624d6d0/src/firefox/index.js#L522
- https://github.com/mozilla/web-ext/blob/5d2b012cfe6d973f9ad47702c5c344259624d6d0/src/firefox/index.js#L530 (not actively used by the CLI tool at the moment)
- https://github.com/saadtazi/firefox-profile-js/blob/08a4e4cefcb5f023ad6f10e9d869c812b59fa9af/lib/firefox_profile.js#L160
Comment 156•3 years ago
|
||
(In reply to Alexandre LISSY :gerard-majax from comment #152)
Since this bug has a lot of people in Cc, I'd like to take the opportunity to ask for some feedback on third party tooling that might be dependant on the
~/.mozilla/
path and might need proper handling of$XDG_CONFIG_HOME
. As:glandium
mentionned, there's mozci/mozregression which I filed a bug for as bug 1724958, but others are likely to be out in the wild.
The crash reporter client assumes the existence of that directory (see here). I don't know if the changes here would affect it but it might be worth keeping it in mind.
Comment 157•3 years ago
|
||
(In reply to Alexandre LISSY :gerard-majax from comment #152)
Since this bug has a lot of people in Cc, I'd like to take the opportunity to ask for some feedback on third party tooling that might be dependant on the
~/.mozilla/
path and might need proper handling of$XDG_CONFIG_HOME
. As:glandium
mentionned, there's mozci/mozregression which I filed a bug for as bug 1724958, but others are likely to be out in the wild.
You can use MOZILLA_CONFIG
as a temporary solution until XDG is supported by default, and use MOZILLA_CONFIG
as a configuration directory when MOZILLA_CONFIG
exists, otherwise it falls back to ~/.mozilla. According to the XDG specification, it's obvious that you shouldn't put everything into .mozilla. But I don't know the directory structure of .mozilla, see https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html to make the directory as compliant as possible.
Comment 158•3 years ago
|
||
(In reply to ohosmp from comment #157)
(In reply to Alexandre LISSY :gerard-majax from comment #152)
Since this bug has a lot of people in Cc, I'd like to take the opportunity to ask for some feedback on third party tooling that might be dependant on the
~/.mozilla/
path and might need proper handling of$XDG_CONFIG_HOME
. As:glandium
mentionned, there's mozci/mozregression which I filed a bug for as bug 1724958, but others are likely to be out in the wild.You can use
MOZILLA_CONFIG
as a temporary solution until XDG is supported by default, and useMOZILLA_CONFIG
as a configuration directory whenMOZILLA_CONFIG
exists, otherwise it falls back to ~/.mozilla. According to the XDG specification, it's obvious that you shouldn't put everything into .mozilla. But I don't know the directory structure of .mozilla, see https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html to make the directory as compliant as possible.
Hi. It doesn't work with firefox 98.0.2 on linux64. Running ltrace -e '-*+*env*'
suggests it never looks up for such environment variable.
Comment 159•3 years ago
|
||
Hi. It doesn't work with firefox 98.0.2 on linux64. Running
ltrace -e '-*+*env*'
suggests it never looks up for such environment variable.
I'm just giving the assignee some advice about the Freedesktop.org XDG base directory patch, which still doesn't go into any version of the code.
Assignee | ||
Comment 160•3 years ago
|
||
(In reply to ohosmp from comment #159)
Hi. It doesn't work with firefox 98.0.2 on linux64. Running
ltrace -e '-*+*env*'
suggests it never looks up for such environment variable.I'm just giving the assignee some advice about the Freedesktop.org XDG base directory patch, which still doesn't go into any version of the code.
If you read my message carefully, we are worrying about third-parties. I fail to understand the relationship between your reply and the message you quoted.
Comment hidden (me-too) |
Comment 162•2 years ago
|
||
I think third parties issue can be solved by making this configurable. I.e. add an option to turn XDG base directory on and off with an environment variable. Let's say MOZ_XDG_BASE_DIR_SUPPORT
. Make it off by default and announce your plans to switch to it in some future. Those who want to use it now will flip the variable in their environment. Then after reasonable time (a year or whatever you decide?) flip the default for everyone. Third parties that care will update, before that, those who don't (consider them abandoned enough) will break.
Comment 163•2 years ago
|
||
Those who do depend on such third parties for whatever reason will just flip the variable the opposite way after that, so their workflow will have an option not to break.
Comment 164•2 years ago
|
||
Then after another grace period you can just remove that legacy fallback and they'll break for good then. That's a reasonable migration path.
Updated•2 years ago
|
Comment hidden (off-topic) |
Comment hidden (advocacy) |
Assignee | ||
Comment 169•2 years ago
|
||
(In reply to Shmerl from comment #164)
Then after another grace period you can just remove that legacy fallback and they'll break for good then. That's a reasonable migration path.
Yeah, but the ultimate outcome is that we continue carrying this burden for at least a few years, adding more complexity on already not super tested components, and in the end we might still end up breaking user's flow.
Comment 170•2 years ago
|
||
(In reply to :gerard-majax [PTO 01/08/2023-10/09/2023] from comment #169)
Yeah, but the ultimate outcome is that we continue carrying this burden for at least a few years, adding more complexity on already not super tested components, and in the end we might still end up breaking user's flow.
At least it's some way forward even if not perfect.
Alternatively, would you be interested in a relatively simple workaround like adding support for MOZ_HOME env variable to the components this bug depends on and then to Firefox itself? This way when it's not set, they will use default $HOME/.mozilla
, and when it's set they would use that location. This way those who don't want wait for the complete fix would set it to something like $HOME/.local/share/mozilla
and be done with it.
Comment 171•1 year ago
|
||
Alternatively, would you be interested in a relatively simple workaround like adding support for MOZ_HOME env variable to the components this bug depends on and then to Firefox itself? This way when it's not set, they will use default
$HOME/.mozilla
, and when it's set they would use that location. This way those who don't want wait for the complete fix would set it to something like$HOME/.local/share/mozilla
and be done with it.
Please do this, at the bare minimum.
Comment 172•1 year ago
|
||
(In reply to Ignacio Taranto from comment #171)
Please do this, at the bare minimum.
I can try doing this, but developers need to ack first they are OK with it, and it will have to be also done in all blocker dependencies. They didn't ack it so far.
Comment 173•1 year ago
|
||
I think we can support the MOZ_HOME dir at least.
Comment hidden (off-topic) |
Comment hidden (off-topic) |
Comment hidden (off-topic) |
Assignee | ||
Updated•1 year ago
|
Comment 177•1 year ago
|
||
(In reply to Shmerl from comment #170)
Alternatively, would you be interested in a relatively simple workaround
like adding support for MOZ_HOME env variable to the components this
bug depends on and then to Firefox itself? This way when it's not set,
they will use default$HOME/.mozilla
, and when it's set they would
use that location. This way those who don't want wait for the complete
fix would set it to something like$HOME/.local/share/mozilla
and
be done with it.
This is a fairly common solution e.g. :
Android SDK -> ANDROID_HOME
Bun -> BUN_INSTALL
Cargo -> CARGO_HOME
gnupg -> GNUPGHOME
go -> GOPATH
gradle -> GRADLE_USER_HOME
nimble -> NIMBLE_DIR
nvm -> NVM_DIR
Rustup -> RUSTUP_HOME
volta -> VOLTA_HOME
w3m -> W3M_DIR
wine -> WINEPREFIX
I personally use these to keep my $HOME
tidy, and it seems like an easy
and pragmatic solution to keep this ticket from stagnating any longer.
Comment 178•1 year ago
|
||
Yes, I didn't get a chance to do it. I'd start with blockers first. Also may be waiting for Mozilla repos to switch to git proper first. If anyone wants to do it for the blockers - feel free to help.
Comment 179•1 year ago
|
||
shmerl, we already support git
see
https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
Comment 180•1 year ago
•
|
||
I think we can support the MOZ_HOME dir at least.
I'm not sure what this gains you over comment 162. If you add another directory config option, every dependency and the Firefox code itself now has to do a 3-way fallback, i.e. default to MOZ_HOME
, then look in XDG_CONFIG_HOME
, then look for ~/.mozilla
. This will be fun with writing testcases :-) Adding MOZ_XDG_BASE_DIR_SUPPORT=false
that disables the new support in Firefox only needs to do something at profile creation time (and add 2-way fallback everywhere else, still no fun but strictly easier and less error prone). If I check the patch that's attached to this bug, it already has a MOZ_LEGACY_HOME
toggle, so the "env var toggle" solution was already coded, just with a different name/default value.
Practically speaking, I'm a bit wary of adding XDG support, and shipping it to release while NOT enabling it by default. If we don't default it, anyone running with the new setting is essentially running an untested configuration. Given that the dependencies include crash reporting, you're not only in an untested config, you're in one that might never get fixed. If we flip it by default, any new profile will have it, so it'll get lots of testing, and any existing user will be on the old code, so that will remain well tested too. So the current patch is just fine from that perspective.
Summarizing, what I think needs to happen is:
a) Patches for the dependencies to support XDG_CONFIG_HOME + .mozilla fallback (note some of these are outside of Mozilla)
b) Rebase the current patch
c) Test the current patch on our CI and testsuites, and fix all the breakage (this could mean fixing more Mozilla tooling we missed in (a))
d) Pick a period where someone with deep Linux expertise isn't buried in Snap/Flatpack/Wayland regressions (in case you wondered why this stalled the last ~3 years)
e) Land the patches in Nightly, enabling XDG support by default (or don't enable by default, but lock it to Nightly then)
f) Watch our CI, Bugzilla and various other Linux forums for additional breakage in 3rd party tooling and assist/evangelize as much as possible
Comment 181•10 months ago
|
||
a) Patches for the dependencies to support XDG_CONFIG_HOME + .mozilla fallback (note some of these are outside of Mozilla)
Are there any dependencies other than 1724958, 1725011 and 1725134 that need to be fixed?
If I check the patch that's attached to this bug, it already has a MOZ_LEGACY_HOME toggle, so the "env var toggle" solution was already coded, just with a different name/default value.
I think using a MOZ_LEGACY_HOME
boolean setting is a bad approach, when a MOZ_HOME
string setting is a lot more configurable. It is also useful for users that prefer a rather small XDG_CONFIG_HOME
(mine is at 12kb, while .mozilla
is at 800mb) backed up via git and would rather move everything to XDG_DATA_HOME
just to get away with the ugly dotfile.
default to MOZ_HOME, then look in XDG_CONFIG_HOME, then look for ~/.mozilla
Since a perfect approach would require firefox and its dependencies to be able to totally separate xdg-config/xdg-data/xdg-state files, with MOZ_XDG_BASE_DIR_SUPPORT
in the meantime not being enable to properly deal with the maybe conflicting behaviors of first moving all files to XDG_CONFIG_HOME
and then to their proper xdg-dirs (or even new ones should the XDG spec receive a new update), I think having MOZ_HOME
> ~/.mozilla
would be future-proof enough for the next decade, as it would require the following workflow:
- Each component adds the two-way fallback
MOZ_HOME
>~/.mozilla
for their required files - Each component discusses how to separate their files independently
- Each component updates the fallback chain
MOZ_HOME
>xdg-dir
>~/.mozilla
as required - Be aware of new XDG spec updates to update the middle fallback (instead of having to rely on a new boolean setting
MOZ_XDG_BASE_DIR_SUPPORT2
etc)
And then some 20y from now just deprecate ~/.mozilla
Comment 182•10 months ago
|
||
Are there any dependencies other than 1724958, 1725011 and 1725134 that need to be fixed?
Probably, but those are the ones identified at this point.
when a MOZ_HOME string setting is a lot more configurable
The previous comment already explains why this is more an argument against it as for it, notably because...
I think having MOZ_HOME > ~/.mozilla would be future-proof enough for the next decade
...it wouldn't even fix this bug because you still wouldn't get XDG support by default.
for users that prefer a rather small XDG_CONFIG_HOME (mine is at 12kb, while .mozilla is at 800mb) backed up via git
That's a valid concern, but as long as the CONFIG/DATA split isn't done, it will be an issue either way. You either back up too much (annoying) or you don't back it up at all (dataloss), or you special case Firefox somewhere (I assume that's what people do now).
I checked mine and it's 5GB, a lot of it due to VSCode, and indeed they are struggling with the same for the same reasons, e.g. https://github.com/microsoft/vscode/issues/126182#issuecomment-1034321175 and https://github.com/microsoft/vscode/issues/126182#issuecomment-1342766685 ("comment war about ... what is config" π). At least I think we mostly handle caches - they're easier to deal with because dataloss and migration aren't as much of an issue.
Comment 183•10 months ago
|
||
...it wouldn't even fix this bug because you still wouldn't get XDG support by default.
I see now, looking back on the items that use a variable, I think only Discord and Chromium might be similar enough as to be properly compared (non-technical user base, require internet access), and they both use XDG_CONFIG_HOME
for now without risking it, so it would indeed be better to first enable a boolean support and then work from there.
Comment 184•10 months ago
|
||
About the things that would need to be fixed, I'd like if any of these count as a dependencies or should be linked somehow:
- Bug reporting guidelines that mention
.mozilla
: https://firefox-source-docs.mozilla.org/contributing/debugging/stacktrace_report.html - Has many hardcoded
.mozilla
: https://hg.mozilla.org/build/mozharness - Using https://searchfox.org/mozilla-central/, I found this project listed that seems to allow
.mozilla
: https://click.palletsprojects.com/en/8.1.x/api/#click.get_app_dir - snap/flatpak versions of firefox
- selenium packages:
- rb: https://github.com/SeleniumHQ/selenium/tree/trunk/rb/lib/selenium/webdriver/firefox
- cs: https://github.com/SeleniumHQ/selenium/tree/trunk/dotnet/src/webdriver/Firefox
- java: https://github.com/SeleniumHQ/selenium/tree/trunk/java/src/org/openqa/selenium/firefox
- obs: for some reason, I couldn't find
.mozilla
mentioned in the other programming languages, but I'm not sure since the only one I actually code in is Python
Assignee | ||
Updated•10 months ago
|
Updated•8 months ago
|
Assignee | ||
Comment 185•8 months ago
|
||
Depends on D122358
Assignee | ||
Comment 186•7 months ago
|
||
Depends on D6995
Assignee | ||
Comment 187•7 months ago
|
||
Depends on D214376
Updated•7 months ago
|
Updated•7 months ago
|
Assignee | ||
Comment 190•7 months ago
|
||
Comment 191•4 months ago
|
||
What's the blocker on this?
Assignee | ||
Comment 192•4 months ago
|
||
(In reply to urosm from comment #191)
What's the blocker on this?
Time ? I'm focused on other things.
Comment 193•4 months ago
|
||
What's the blocker on this?
FYI on top of the bug you can see the "Depends on" which lists some Mozilla infra or important external packages (like Selenium) that we need to fix before we can roll this out.
Assignee | ||
Comment 195•3 months ago
|
||
(In reply to urosm from comment #191)
What's the blocker on this?
There are gecko-level fixes that may still be needed (mostly around infra though) and then we want to have a good overview (and potentially existing fixes already) on third parties that may broke (e.g., snap in bug 1903085). So if you are looking to help that's two areas easy: identifying other third parties we have not found and/or sending upstream patches (some are simple, i have not done it because I'm focused on other topics for the moment)
Description
•