https://github.com/qutebrowser/qutebrowser/issues/8785
https://github.com/qutebrowser/qutebrowser/commit/0c34bf2f791b1
--- a/qutebrowser/browser/webengine/webenginesettings.py
+++ b/qutebrowser/browser/webengine/webenginesettings.py
@@ -459,12 +459,16 @@
 
 
+def default_qt_profile() -> QWebEngineProfile:
+    """Get the default profile from Qt."""
+    if machinery.IS_QT6:
+        return QWebEngineProfile("Default")
+    else:
+        return QWebEngineProfile.defaultProfile()
+
+
 def _init_default_profile():
     """Init the default QWebEngineProfile."""
     global default_profile
-
-    if machinery.IS_QT6:
-        default_profile = QWebEngineProfile("Default")
-    else:
-        default_profile = QWebEngineProfile.defaultProfile()
+    default_profile = default_qt_profile()
     assert not default_profile.isOffTheRecord()
 
--- a/qutebrowser/utils/version.py
+++ b/qutebrowser/utils/version.py
@@ -931,10 +931,16 @@
     if (
         objects.backend == usertypes.Backend.QtWebEngine
-        and "avoid-chromium-init" not in objects.debug_flags
         and machinery.IS_QT6  # mypy; TODO early return once Qt 5 is dropped
     ):
-        from qutebrowser.qt.webenginecore import QWebEngineProfile
-        profile = QWebEngineProfile.defaultProfile()
-        assert profile is not None  # mypy
+        from qutebrowser.browser.webengine import webenginesettings
+        lines.append("WebExtensions:")
+
+        if webenginesettings.default_profile:
+            profile = webenginesettings.default_profile
+        elif "avoid-chromium-init" in objects.debug_flags:
+            lines[0] += " unknown (avoiding init)"
+            return lines
+        else:
+            profile = webenginesettings.default_qt_profile()
 
         try:
@@ -945,5 +951,4 @@
         assert ext_manager is not None  # mypy
 
-        lines.append("WebExtensions:")
         if not ext_manager.extensions():
             lines[0] += " none"
--- a/tests/unit/utils/test_version.py
+++ b/tests/unit/utils/test_version.py
@@ -1450,9 +1450,7 @@
         if machinery.IS_QT6:
             monkeypatch.setattr(
-                QWebEngineProfile,
-                "defaultProfile",
-                lambda: FakeExtensionProfile(
-                    FakeExtensionManager([FakeExtensionInfo("ext1")])
-                ),
+                webenginesettings,
+                "default_profile",
+                FakeExtensionProfile(FakeExtensionManager([FakeExtensionInfo("ext1")])),
             )
             substitutions['webextensions'] = (
@@ -1593,18 +1591,33 @@
 
     def test_qtwebkit(self, monkeypatch: pytest.MonkeyPatch) -> None:
+        assert webenginesettings.default_profile is None  # -> default_qt_profile() used
         monkeypatch.setattr(version.objects, "backend", usertypes.Backend.QtWebKit)
-        monkeypatch.setattr(QWebEngineProfile, "defaultProfile", lambda: 1/0)
+        monkeypatch.setattr(webenginesettings, "default_qt_profile", lambda: 1 / 0)
         assert not version._webengine_extensions()
 
     def test_avoid_chromium_init(self, monkeypatch: pytest.MonkeyPatch) -> None:
+        assert webenginesettings.default_profile is None  # -> default_qt_profile() used
         monkeypatch.setattr(version.objects, "backend", usertypes.Backend.QtWebEngine)
         monkeypatch.setattr(objects, "debug_flags", {"avoid-chromium-init"})
-        monkeypatch.setattr(QWebEngineProfile, "defaultProfile", lambda: 1/0)
-        assert not version._webengine_extensions()
+        monkeypatch.setattr(webenginesettings, "default_qt_profile", lambda: 1 / 0)
+        assert version._webengine_extensions() == [
+            "WebExtensions: unknown (avoiding init)"
+        ]
 
     def test_no_extension_manager(self, monkeypatch: pytest.MonkeyPatch) -> None:
-        monkeypatch.setattr(QWebEngineProfile, "defaultProfile", object)
+        assert webenginesettings.default_profile is None  # -> default_qt_profile() used
+        monkeypatch.setattr(webenginesettings, "default_qt_profile", object)
         assert not version._webengine_extensions()
 
+    @pytest.mark.parametrize("avoid_init", [True, False])
+    def test_preexisting_profile(self, monkeypatch: pytest.MonkeyPatch, avoid_init: bool) -> None:
+        """Test that we use the pre-existing profile if available."""
+        monkeypatch.setattr(webenginesettings, "default_profile", FakeExtensionProfile(FakeExtensionManager([])))
+        if avoid_init:
+            monkeypatch.setattr(objects, "debug_flags", {"avoid-chromium-init"})
+
+        result = version._webengine_extensions()
+        assert result == ["WebExtensions: none"]
+
     @pytest.mark.parametrize(
         "extensions, expected",
@@ -1667,9 +1680,7 @@
     ) -> None:
         monkeypatch.setattr(
-            QWebEngineProfile,
-            "defaultProfile",
-            lambda: FakeExtensionProfile(
-                FakeExtensionManager(extensions)
-            ),
+            webenginesettings,
+            "default_profile",
+            FakeExtensionProfile(FakeExtensionManager(extensions)),
         )
         assert version._webengine_extensions() == expected
