commit 490dda6c65413dc248f852af5fa7e1d29add4189
parent 782b1abb8a3509e51371aef10867e60501420ce9
Author: Serban Stanca <sstanca@mozilla.com>
Date: Tue, 30 Dec 2025 00:41:30 +0200
Revert "Bug 2003137 - Add XDG test for legacy directory without profiles.ini r=gerard-majax" for causing nsXREDirProvider::EnsureDirectoryExists related xpcshell crashes.
This reverts commit 1635d321d55364f0840e6a40c11eaa6e120acfcf.
This reverts commit e8a2667bdcf48f5d6dfeed21500bda4c8bd6a305.
Diffstat:
4 files changed, 1 insertion(+), 102 deletions(-)
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
@@ -1363,19 +1363,7 @@ bool nsXREDirProvider::LegacyHomeExists(nsIFile** aFile) {
rv = AppendFromAppData(localDir, true);
NS_ENSURE_SUCCESS(rv, false);
- // Check for profiles.ini instead of directory existence
- nsCOMPtr<nsIFile> profilesIni;
- rv = localDir->Clone(getter_AddRefs(profilesIni));
- NS_ENSURE_SUCCESS(rv, false);
-
- /* Fix bug 2003137. "profiles.ini" is only created when profiles exist.
- * Other subsystems (crash reporting, telemetry) may create subdirectories
- * without this file.
- */
- rv = profilesIni->AppendNative("profiles.ini"_ns);
- NS_ENSURE_SUCCESS(rv, false);
-
- rv = profilesIni->Exists(&exists);
+ rv = localDir->Exists(&exists);
NS_ENSURE_SUCCESS(rv, false);
// Give a chance to (3)
@@ -1390,10 +1378,6 @@ bool nsXREDirProvider::LegacyHomeExists(nsIFile** aFile) {
rv = userDir->AppendRelativeNativePath(mozUserDir);
NS_ENSURE_SUCCESS(rv, false);
- // Check for profiles.ini in MOZ_USER_DIR
- rv = userDir->AppendNative("profiles.ini"_ns);
- NS_ENSURE_SUCCESS(rv, false);
-
rv = userDir->Exists(&exists);
NS_ENSURE_SUCCESS(rv, false);
}
diff --git a/toolkit/xre/test/marionette/xdg_config/manifest.toml b/toolkit/xre/test/marionette/xdg_config/manifest.toml
@@ -1,8 +1,5 @@
[DEFAULT]
-["test_xdg_config_legacy_dir_only.py"]
-run-if = ["os == 'linux'"]
-
["test_xdg_config_legacy_existing.py"]
run-if = ["os == 'linux'"]
diff --git a/toolkit/xre/test/marionette/xdg_config/test_xdg_config_legacy_dir_only.py b/toolkit/xre/test/marionette/xdg_config/test_xdg_config_legacy_dir_only.py
@@ -1,81 +0,0 @@
-import os
-import sys
-
-import mozfile
-
-sys.path.append(os.path.dirname(__file__))
-
-from xdg_config_home_test_case import XdgConfigHomeTestCase
-
-
-class TestXdgConfigHomeLegacyDirOnly(XdgConfigHomeTestCase):
- """
- Test that when legacy directory exists but profiles.ini doesn't,
- Firefox uses XDG directory instead.
-
- This tests the scenario where ~/.mozilla/firefox directory exists
- (perhaps from a previous Firefox version or manual creation) but
- profiles.ini does not exist. In this case, Firefox should treat it
- as a fresh install and use the XDG Base Directory specification,
- creating the profile in ~/.config/mozilla/firefox/ instead.
- """
-
- def setUp(self):
- # Create legacy directory WITHOUT profiles.ini
- self.legacy_dir = os.path.join(self.homedir, ".mozilla", "firefox")
- os.makedirs(self.legacy_dir, exist_ok=True)
-
- # Verify profiles.ini does NOT exist
- legacy_profiles_ini = os.path.join(self.legacy_dir, "profiles.ini")
- assert not os.path.exists(
- legacy_profiles_ini
- ), "profiles.ini should not exist in legacy directory"
-
- # Also create some dummy files in legacy dir to make it look "real"
- # This simulates a case where the directory exists but was never
- # properly initialized by Firefox
- dummy_file = os.path.join(self.legacy_dir, "dummy.txt")
- with open(dummy_file, "w") as f:
- f.write("This is a dummy file\n")
-
- super().setUp()
-
- def tearDown(self):
- if os.path.exists(self.legacy_dir):
- mozfile.remove(self.legacy_dir)
- assert not os.path.exists(self.legacy_dir)
- super().tearDown()
-
- def test_profile_dir_uses_xdg(self):
- """Should create profile in XDG directory, not legacy"""
- self.client.navigate(self.about_support)
-
- profile_subdir = self.get_asserted_profile_subdir()
- print(f"profile_subdir={profile_subdir}")
-
- # Should use XDG, not legacy
- self.assertTrue(
- profile_subdir.startswith(".config/mozilla/firefox"),
- f"Profile should be under XDG .config/mozilla/firefox, "
- f"not legacy .mozilla/firefox. Got: {profile_subdir}",
- )
-
- def test_profiles_ini_created_in_xdg(self):
- """Verify profiles.ini was created in XDG location, not legacy"""
- self.client.navigate(self.about_support)
-
- # profiles.ini should be in XDG directory
- xdg_profiles_ini = os.path.join(
- self.homedir, ".config", "mozilla", "firefox", "profiles.ini"
- )
- self.assertTrue(
- os.path.exists(xdg_profiles_ini),
- f"profiles.ini should be created in XDG directory: {xdg_profiles_ini}",
- )
-
- # profiles.ini should NOT be in legacy directory
- legacy_profiles_ini = os.path.join(self.legacy_dir, "profiles.ini")
- self.assertFalse(
- os.path.exists(legacy_profiles_ini),
- f"profiles.ini should NOT be created in legacy directory: {legacy_profiles_ini}",
- )
diff --git a/tools/lint/dot-mozilla-reference.yml b/tools/lint/dot-mozilla-reference.yml
@@ -39,7 +39,6 @@ avoid-dot-mozilla-without-xdg:
- toolkit/crashreporter/crash_helper_server/src/logging/env.rs
- toolkit/moz.configure
- toolkit/xre/nsXREDirProvider.cpp
- - toolkit/xre/test/marionette/xdg_config/test_xdg_config_legacy_dir_only.py
- toolkit/xre/test/marionette/xdg_config/test_xdg_config_legacy_existing.py
- toolkit/tests/gtest/TestXREAppDir.cpp
- xpcom/io/nsAppFileLocationProvider.cpp