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:
|
||||
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
|
||||
for info in ext_manager.extensions():
|
||||
if info.id() == pakjoy.HANGOUTS_EXT_ID:
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import pytest
|
|||
from qutebrowser.qt.core import QProcess, QPoint
|
||||
|
||||
from helpers import testutils
|
||||
from end2end.fixtures import quteprocess
|
||||
from qutebrowser.utils import qtutils, utils, version
|
||||
|
||||
|
||||
|
|
@ -612,6 +613,25 @@ def test_service_worker_workaround(
|
|||
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])
|
||||
def test_cookies_store(quteproc_new, request, short_tmpdir, store):
|
||||
# Start test process
|
||||
|
|
|
|||
Loading…
Reference in New Issue