Avoid disabling off-the-record profile Hangouts extension with Qt 6.10.1
Otherwise this results in a crash, see #8785
This commit is contained in:
parent
8ae5e3d83b
commit
31a5737c61
|
|
@ -431,6 +431,17 @@ def _maybe_disable_hangouts_extension(profile: QWebEngineProfile) -> None:
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
return # added in QtWebEngine 6.10
|
return # added in QtWebEngine 6.10
|
||||||
|
|
||||||
|
qtwe_versions = version.qtwebengine_versions(avoid_init=True)
|
||||||
|
if (
|
||||||
|
qtwe_versions.webengine == utils.VersionNumber(6, 10, 1)
|
||||||
|
and profile.isOffTheRecord()
|
||||||
|
):
|
||||||
|
# WORKAROUND for https://github.com/qutebrowser/qutebrowser/issues/8785
|
||||||
|
log.misc.warning(
|
||||||
|
"Not disabling Hangouts extension on private profile to avoid "
|
||||||
|
"QtWebEngine crash with Qt 6.10.1")
|
||||||
|
return
|
||||||
|
|
||||||
assert ext_manager is not None # mypy
|
assert ext_manager is not None # mypy
|
||||||
for info in ext_manager.extensions():
|
for info in ext_manager.extensions():
|
||||||
if info.id() == pakjoy.HANGOUTS_EXT_ID:
|
if info.id() == pakjoy.HANGOUTS_EXT_ID:
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ import pytest
|
||||||
from qutebrowser.qt.core import QProcess, QPoint
|
from qutebrowser.qt.core import QProcess, QPoint
|
||||||
|
|
||||||
from helpers import testutils
|
from helpers import testutils
|
||||||
|
from end2end.fixtures import quteprocess
|
||||||
from qutebrowser.utils import qtutils, utils, version
|
from qutebrowser.utils import qtutils, utils, version
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -612,6 +613,25 @@ def test_service_worker_workaround(
|
||||||
assert not service_worker_dir.exists()
|
assert not service_worker_dir.exists()
|
||||||
|
|
||||||
|
|
||||||
|
def test_disable_hangouts_extension_crash(
|
||||||
|
quteproc_new: quteprocess.QuteProc,
|
||||||
|
request: pytest.FixtureRequest,
|
||||||
|
webengine_versions: version.WebEngineVersions,
|
||||||
|
):
|
||||||
|
"""Make sure disabling the Hangouts extension doesn't crash."""
|
||||||
|
args = _base_args(request.config) + [
|
||||||
|
'--temp-basedir',
|
||||||
|
'-s', 'qt.workarounds.disable_hangouts_extension', 'true',
|
||||||
|
]
|
||||||
|
quteproc_new.start(args)
|
||||||
|
if webengine_versions.webengine == utils.VersionNumber(6, 10, 1):
|
||||||
|
line = quteproc_new.wait_for(message="Not disabling Hangouts extension *")
|
||||||
|
line.expected = True
|
||||||
|
|
||||||
|
quteproc_new.send_cmd(':quit')
|
||||||
|
quteproc_new.wait_for_quit()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('store', [True, False])
|
@pytest.mark.parametrize('store', [True, False])
|
||||||
def test_cookies_store(quteproc_new, request, short_tmpdir, store):
|
def test_cookies_store(quteproc_new, request, short_tmpdir, store):
|
||||||
# Start test process
|
# Start test process
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue