Manage Profiles dialog appears blank with old profiles.ini
Categories
(Toolkit :: Startup and Profile System, defect)
Tracking
()
People
(Reporter: info, Unassigned)
Details
Attachments
(1 file)
|
713 bytes,
text/plain
|
Details |
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:147.0) Gecko/20100101 Firefox/147.0
Steps to reproduce:
I have a decades-old profiles.ini. When Firefox added Profiles/Profile manager in November 2025, Firefox stopped loading my profile I fiddled around with profiles.ini to hack my profile to look like the new kind until it worked again. Each time Firefox starts it prompt me to choose a profile (I think because profiles.ini contains
StartWithLastProfile=0
), and I choose my long-lived one, and Firefox works, and about:profiles looks good. Today I chose Profiles > Manage Profile, possibly for the first time, and it simply doesn't work.
Actual results:
I get an empty blank dialog window titled "Firefox - Choose a profile"
Expected results:
I should see my profiles, or see some kind of warning about a problem.
I have attached my profiles.ini, with details obfuscated.
My about.config has browser.profiles.created = true and browser.profiles.enabled = true.
ADDITIONAL INFO:
I started up Browser Toolbox, and even before Profiles > Manage Profile, I see a JS error:
DOMException: PathUtils.joinRelative: Could not append to path: NS_ERROR_FILE_UNRECOGNIZED_PATH
get path resource:///modules/profiles/SelectableProfile.sys.mjs:134
get rootDir resource:///modules/profiles/SelectableProfile.sys.mjs:147
setDefaultProfileForGroup resource:///modules/profiles/SelectableProfileService.sys.mjs:1051
<anonymous> resource:///modules/profiles/SelectableProfileService.sys.mjs:462
#runTask resource://gre/modules/DeferredTask.sys.mjs:356
timerCallback resource://gre/modules/DeferredTask.sys.mjs:327
#timerCallback resource://gre/modules/DeferredTask.sys.mjs:346
callback resource://gre/modules/DeferredTask.sys.mjs:192
ChromeUtils::IdleDispatch handler*_startIdleDispatch resource://gre/modules/DeferredTask.sys.mjs:208
callback resource://gre/modules/DeferredTask.sys.mjs:186
DeferredTask.sys.mjs:358:15
I see more of this JS error when I invoke a menu item.
I couldn't figure out how to debug the "Choose a profile" dialog window.
Comment 1•8 months ago
|
||
The Bugbug bot thinks this bug should belong to the 'Toolkit::Startup and Profile System' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.
The problem arises in
get path() {
return PathUtils.joinRelative(
ProfilesDatastoreService.constructor.getDirectory("UAppData").path,
this.#path
);
}
ProfilesDatastoreService.constructor.getDirectory("UAppData").path is "/home/spage/.mozilla/firefox"
this.#path is "../../../../media/Windows/Users/spage/Firefox_profiles/BLAHBLAH.spage1";
note the path to my profile in profiles.ini is absolute starting at root:
IsRelative=0
Path=/media/Windows/Users/spage/Firefox_profiles/BLAHBLAH.spage1
The combined path /home/spage/.mozilla/firefox/../../../../media/Windows/Users/spage/Firefox_profiles/BLAHBLAH.spage1 exists as a valid directory, but I think PathUtils.joinRelative() disallows relative paths as a security measure (I think AppendRelativeNativePath() in /xpcom/io/nsLocalFileUnix.cpp detects the ".." and returns NS_ERROR_FILE_UNRECOGNIZED_PATH. Maybe I can work around this by setting up a symlink in my profiles directory, but do you really intend this limitation? Profiles are huge; I doubt I'm the only one who keeps some in another directory. And again, profile selection at Firefox startup and about:profiles work fine for me with this absolute path to my main profile
Updated•8 months ago
|
Description
•