parent
ce32159b08
commit
34db7a1ef4
|
|
@ -75,10 +75,15 @@ def qt_args(namespace: argparse.Namespace) -> List[str]:
|
|||
log.init.debug("QtWebEngine requested, but unavailable...")
|
||||
return argv
|
||||
|
||||
versions = version.qtwebengine_versions(avoid_init=True)
|
||||
if versions.webengine >= utils.VersionNumber(6, 4):
|
||||
# https://codereview.qt-project.org/c/qt/qtwebengine/+/376704
|
||||
argv.insert(1, "--webEngineArgs")
|
||||
|
||||
special_prefixes = (_ENABLE_FEATURES, _DISABLE_FEATURES, _BLINK_SETTINGS)
|
||||
special_flags = [flag for flag in argv if flag.startswith(special_prefixes)]
|
||||
argv = [flag for flag in argv if not flag.startswith(special_prefixes)]
|
||||
argv += list(_qtwebengine_args(namespace, special_flags))
|
||||
argv += list(_qtwebengine_args(versions, namespace, special_flags))
|
||||
|
||||
return argv
|
||||
|
||||
|
|
@ -241,12 +246,11 @@ def _get_lang_override(
|
|||
|
||||
|
||||
def _qtwebengine_args(
|
||||
versions: version.WebEngineVersions,
|
||||
namespace: argparse.Namespace,
|
||||
special_flags: Sequence[str],
|
||||
) -> Iterator[str]:
|
||||
"""Get the QtWebEngine arguments to use based on the config."""
|
||||
versions = version.qtwebengine_versions(avoid_init=True)
|
||||
|
||||
# https://codereview.qt-project.org/c/qt/qtwebengine/+/256786
|
||||
# https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/265753
|
||||
if 'stack' in namespace.debug_flags:
|
||||
|
|
|
|||
|
|
@ -41,11 +41,17 @@ def parser(mocker):
|
|||
@pytest.fixture
|
||||
def version_patcher(monkeypatch):
|
||||
"""Get a patching function to patch the QtWebEngine version."""
|
||||
def run(ver):
|
||||
def run(ver) -> bool:
|
||||
"""Run patching.
|
||||
|
||||
Return:
|
||||
True if we know the associated Chromium version, False otherwise
|
||||
"""
|
||||
versions = version.WebEngineVersions.from_pyqt(ver)
|
||||
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
|
||||
monkeypatch.setattr(version, 'qtwebengine_versions',
|
||||
lambda avoid_init: versions)
|
||||
return versions.chromium_major is not None
|
||||
|
||||
return run
|
||||
|
||||
|
|
@ -482,6 +488,28 @@ class TestWebEngineArgs:
|
|||
args = qtargs.qt_args(parsed)
|
||||
assert '--lang=de' in args
|
||||
|
||||
@pytest.mark.parametrize("version, expected", [
|
||||
('5.15.2', False),
|
||||
('5.15.9', False),
|
||||
('6.2.4', False),
|
||||
('6.3.1', False),
|
||||
('6.4.0', True),
|
||||
('6.5.0', True),
|
||||
])
|
||||
def test_webengine_args(self, version_patcher, parser, version, expected):
|
||||
known_chromium = version_patcher(version)
|
||||
if not known_chromium:
|
||||
pytest.skip("Don't know associated Chromium version")
|
||||
|
||||
parsed = parser.parse_args([])
|
||||
args = qtargs.qt_args(parsed)
|
||||
|
||||
flag = "--webEngineArgs"
|
||||
if expected:
|
||||
assert args[1] == flag
|
||||
else:
|
||||
assert flag not in args
|
||||
|
||||
|
||||
class TestEnvVars:
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue