Merge branch 'qutebrowser:main' into feature_contexthinter
This commit is contained in:
commit
75e677d45e
|
|
@ -1,5 +1,5 @@
|
|||
[tool.bumpversion]
|
||||
current_version = "3.6.1"
|
||||
current_version = "3.6.3"
|
||||
commit = true
|
||||
message = "Release v{new_version}"
|
||||
tag = true
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ jobs:
|
|||
- /home/runner/work/_temp/:/home/runner/work/_temp/
|
||||
options: --privileged --tty
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up problem matchers
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ jobs:
|
|||
- testenv: actionlint
|
||||
- testenv: package
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/cache@v4
|
||||
|
|
@ -106,7 +106,7 @@ jobs:
|
|||
- /home/runner/work/_temp/:/home/runner/work/_temp/
|
||||
options: --privileged --tty
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up problem matchers
|
||||
|
|
@ -217,7 +217,7 @@ jobs:
|
|||
python: "3.14"
|
||||
runs-on: "${{ matrix.os }}"
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/cache@v4
|
||||
|
|
@ -285,7 +285,7 @@ jobs:
|
|||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Initialize CodeQL
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
- archlinux-webengine
|
||||
- archlinux-webengine-unstable
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
- uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ jobs:
|
|||
runs-on: "${{ matrix.os }}"
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up Python
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ jobs:
|
|||
timeout-minutes: 20
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Set up Python 3.9
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ jobs:
|
|||
console.log(`sorted: ${sorted}`);
|
||||
return sorted.at(-1);
|
||||
result-encoding: string
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
|
|
@ -78,7 +78,7 @@ jobs:
|
|||
git config --global user.name "qutebrowser bot"
|
||||
git config --global user.email "bot@qutebrowser.org"
|
||||
- name: Switch to release branch
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ steps.find-branch.outputs.result }}
|
||||
- name: Import GPG Key
|
||||
|
|
@ -110,6 +110,7 @@ jobs:
|
|||
- name: Cherry-pick release commit
|
||||
if: ${{ inputs.release_type == 'patch' }}
|
||||
run: |
|
||||
git fetch origin main
|
||||
git checkout main
|
||||
git cherry-pick -x v${{ steps.bump.outputs.version }}
|
||||
git push origin main
|
||||
|
|
@ -163,7 +164,7 @@ jobs:
|
|||
permissions:
|
||||
contents: write # To upload release artifacts
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: v${{ inputs.release_type == 'reupload' && needs.prepare.outputs.version_x || needs.prepare.outputs.version }}
|
||||
- name: Set up Python
|
||||
|
|
|
|||
|
|
@ -15,14 +15,28 @@ breaking changes (such as renamed commands) can happen in minor releases.
|
|||
// `Fixed` for any bug fixes.
|
||||
// `Security` to invite users to upgrade in case of vulnerabilities.
|
||||
|
||||
[[v3.7.0]]
|
||||
v3.7.0 (unreleased)
|
||||
[[v3.6.3]]
|
||||
v3.6.3 (2025-11-30)
|
||||
-------------------
|
||||
|
||||
Fixed
|
||||
~~~~~
|
||||
|
||||
- New `qt.workarounds.disable_accessibility` setting, which disables Chromium
|
||||
accessibility support. By default, is it set to `auto`, which only disables
|
||||
accessibility on Qt versions with known issues. This works around a bug in Qt
|
||||
6.10.1 causing frequent segfaults (#8797).
|
||||
|
||||
[[v3.6.2]]
|
||||
v3.6.2 (unreleased)
|
||||
v3.6.2 (2025-11-27)
|
||||
-------------------
|
||||
|
||||
Changed
|
||||
~~~~~~~
|
||||
|
||||
* Windows and macOS releases now ship with Qt 6.10.1, which include
|
||||
security patches up to Chromium 142.0.7444.162.
|
||||
|
||||
Fixed
|
||||
~~~~~
|
||||
|
||||
|
|
|
|||
|
|
@ -302,6 +302,7 @@
|
|||
|<<qt.force_software_rendering,qt.force_software_rendering>>|Force software rendering for QtWebEngine.
|
||||
|<<qt.highdpi,qt.highdpi>>|Turn on Qt HighDPI scaling.
|
||||
|<<qt.workarounds.disable_accelerated_2d_canvas,qt.workarounds.disable_accelerated_2d_canvas>>|Disable accelerated 2d canvas to avoid graphical glitches.
|
||||
|<<qt.workarounds.disable_accessibility,qt.workarounds.disable_accessibility>>|Disable accessibility to avoid crashes on Qt 6.10.1.
|
||||
|<<qt.workarounds.disable_hangouts_extension,qt.workarounds.disable_hangouts_extension>>|Disable the Hangouts extension.
|
||||
|<<qt.workarounds.locale,qt.workarounds.locale>>|Work around locale parsing issues in QtWebEngine 5.15.3.
|
||||
|<<qt.workarounds.remove_service_workers,qt.workarounds.remove_service_workers>>|Delete the QtWebEngine Service Worker directory on every start.
|
||||
|
|
@ -3996,6 +3997,24 @@ Valid values:
|
|||
|
||||
Default: +pass:[auto]+
|
||||
|
||||
[[qt.workarounds.disable_accessibility]]
|
||||
=== qt.workarounds.disable_accessibility
|
||||
Disable accessibility to avoid crashes on Qt 6.10.1.
|
||||
|
||||
This setting requires a restart.
|
||||
|
||||
This setting is only available with the QtWebEngine backend.
|
||||
|
||||
Type: <<types,String>>
|
||||
|
||||
Valid values:
|
||||
|
||||
* +always+: Disable renderer accessibility
|
||||
* +auto+: Disable on Qt versions with known issues, enable otherwise
|
||||
* +never+: Enable renderer accessibility
|
||||
|
||||
Default: +pass:[auto]+
|
||||
|
||||
[[qt.workarounds.disable_hangouts_extension]]
|
||||
=== qt.workarounds.disable_hangouts_extension
|
||||
Disable the Hangouts extension.
|
||||
|
|
|
|||
|
|
@ -44,6 +44,8 @@
|
|||
</content_rating>
|
||||
<releases>
|
||||
<!-- Add new releases here -->
|
||||
<release version='3.6.3' date='2025-11-30'/>
|
||||
<release version='3.6.2' date='2025-11-27'/>
|
||||
<release version='3.6.1' date='2025-11-03'/>
|
||||
<release version='3.6.0' date='2025-10-24'/>
|
||||
<release version='3.5.1' date='2025-06-05'/>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ packaging==25.0
|
|||
platformdirs==4.4.0
|
||||
prompt_toolkit==3.0.52
|
||||
pycparser==2.23
|
||||
pydantic==2.12.4
|
||||
pydantic==2.12.5
|
||||
pydantic-settings==2.11.0
|
||||
pydantic_core==2.41.5
|
||||
Pygments==2.19.2
|
||||
|
|
|
|||
|
|
@ -3,6 +3,6 @@
|
|||
altgraph==0.17.5
|
||||
importlib_metadata==8.7.0
|
||||
packaging==25.0
|
||||
pyinstaller==6.16.0
|
||||
pyinstaller==6.17.0
|
||||
pyinstaller-hooks-contrib==2025.10
|
||||
zipp==3.23.0
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# This file is automatically generated by scripts/dev/recompile_requirements.py
|
||||
|
||||
PyQt6==6.10.0
|
||||
PyQt6-Qt6==6.10.0
|
||||
PyQt6-Qt6==6.10.1
|
||||
PyQt6-WebEngine==6.10.0
|
||||
PyQt6-WebEngine-Qt6==6.10.0
|
||||
PyQt6-WebEngine-Qt6==6.10.1
|
||||
PyQt6_sip==13.10.2
|
||||
--extra-index-url https://www.riverbankcomputing.com/pypi/simple/
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# This file is automatically generated by scripts/dev/recompile_requirements.py
|
||||
|
||||
PyQt6==6.10.0
|
||||
PyQt6-Qt6==6.10.0
|
||||
PyQt6-Qt6==6.10.1
|
||||
PyQt6-WebEngine==6.10.0
|
||||
PyQt6-WebEngine-Qt6==6.10.0
|
||||
PyQt6-WebEngine-Qt6==6.10.1
|
||||
PyQt6_sip==13.10.2
|
||||
--extra-index-url https://www.riverbankcomputing.com/pypi/simple/
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# This file is automatically generated by scripts/dev/recompile_requirements.py
|
||||
|
||||
PyQt6==6.10.0
|
||||
PyQt6-Qt6==6.10.0
|
||||
PyQt6-Qt6==6.10.1
|
||||
PyQt6-WebEngine==6.10.0
|
||||
PyQt6-WebEngine-Qt6==6.10.0
|
||||
PyQt6-WebEngine-Qt6==6.10.1
|
||||
PyQt6_sip==13.10.2
|
||||
--extra-index-url https://www.riverbankcomputing.com/pypi/simple/
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ __copyright__ = "Copyright 2013-{} Florian Bruhin (The Compiler)".format(_year)
|
|||
__license__ = "GPL-3.0-or-later"
|
||||
__maintainer__ = __author__
|
||||
__email__ = "mail@qutebrowser.org"
|
||||
__version__ = "3.6.1"
|
||||
__version__ = "3.6.3"
|
||||
__version_info__ = tuple(int(part) for part in __version__.split('.'))
|
||||
__description__ = "A keyboard-driven, vim-like browser based on Python and Qt."
|
||||
|
||||
|
|
|
|||
|
|
@ -541,7 +541,7 @@ def _init_site_specific_quirks():
|
|||
# "{qt_key}/{qt_version} "
|
||||
# "{upstream_browser_key}/{upstream_browser_version_short} "
|
||||
# "Safari/{webkit_version}")
|
||||
firefox_ua = "Mozilla/5.0 ({os_info}; rv:144.0) Gecko/20100101 Firefox/144.0"
|
||||
firefox_ua = "Mozilla/5.0 ({os_info}; rv:145.0) Gecko/20100101 Firefox/145.0"
|
||||
|
||||
# Needed for gitlab.gnome.org which blocks old Chromium versions outright,
|
||||
# except when QtWebEngine/... is in the UA.
|
||||
|
|
|
|||
|
|
@ -422,6 +422,19 @@ qt.workarounds.disable_hangouts_extension:
|
|||
disabled to avoid crashes on Qt 6.5.0 to 6.5.3 if dark mode is enabled,
|
||||
as well as on Qt 6.6.0.
|
||||
|
||||
qt.workarounds.disable_accessibility:
|
||||
type:
|
||||
name: String
|
||||
valid_values:
|
||||
- always: Disable renderer accessibility
|
||||
- auto: Disable on Qt versions with known issues, enable otherwise
|
||||
- never: Enable renderer accessibility
|
||||
default: auto
|
||||
backend: QtWebEngine
|
||||
restart: true
|
||||
desc: >-
|
||||
Disable accessibility to avoid crashes on Qt 6.10.1.
|
||||
|
||||
## auto_save
|
||||
|
||||
auto_save.interval:
|
||||
|
|
@ -773,14 +786,14 @@ content.headers.user_agent:
|
|||
# Vim-protip: Place your cursor below this comment and run
|
||||
# :r!python scripts/dev/ua_fetch.py
|
||||
- - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
|
||||
(KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36"
|
||||
- Chrome 141 macOS
|
||||
(KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36"
|
||||
- Chrome 142 macOS
|
||||
- - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
|
||||
like Gecko) Chrome/141.0.0.0 Safari/537.36"
|
||||
- Chrome 141 Win10
|
||||
like Gecko) Chrome/142.0.0.0 Safari/537.36"
|
||||
- Chrome 142 Win10
|
||||
- - "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like
|
||||
Gecko) Chrome/141.0.0.0 Safari/537.36"
|
||||
- Chrome 141 Linux
|
||||
Gecko) Chrome/142.0.0.0 Safari/537.36"
|
||||
- Chrome 142 Linux
|
||||
supports_pattern: true
|
||||
desc: |
|
||||
User agent to send.
|
||||
|
|
|
|||
|
|
@ -159,10 +159,9 @@ def _qtwebengine_features( # noqa: C901
|
|||
# TODO adjust if fixed in Qt 6.9.2+
|
||||
disabled_features.append('DocumentPictureInPictureAPI')
|
||||
|
||||
if versions.webengine >= utils.VersionNumber(6, 9):
|
||||
if utils.VersionNumber(6, 9) <= versions.webengine < utils.VersionNumber(6, 10, 1):
|
||||
# WORKAROUND for https://bugreports.qt.io/browse/QTBUG-135787
|
||||
# and https://bugreports.qt.io/browse/QTBUG-141096
|
||||
# TODO adjust if fixed in Qt 6.9.2+
|
||||
disabled_features.append('PermissionElement')
|
||||
|
||||
if not config.val.input.media_keys:
|
||||
|
|
@ -363,6 +362,16 @@ _WEBENGINE_SETTINGS: dict[str, dict[Any, Optional[_SettingValueType]]] = {
|
|||
and versions.webengine < utils.VersionNumber(6, 8, 2)
|
||||
else None,
|
||||
},
|
||||
'qt.workarounds.disable_accessibility': {
|
||||
'always': '--disable-renderer-accessibility',
|
||||
'never': None,
|
||||
# WORKAROUND for https://qt-project.atlassian.net/browse/QTBUG-142320
|
||||
'auto': lambda versions: '--disable-renderer-accessibility'
|
||||
if machinery.IS_QT6
|
||||
and versions.webengine
|
||||
and versions.webengine == utils.VersionNumber(6, 10, 1)
|
||||
else None,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ def _smoke_test_run(
|
|||
return subprocess.run(argv, check=True, capture_output=True)
|
||||
|
||||
|
||||
def smoke_test(executable: pathlib.Path, debug: bool) -> None:
|
||||
def smoke_test(executable: pathlib.Path, debug_build: bool) -> None:
|
||||
"""Try starting the given qutebrowser executable."""
|
||||
stdout_whitelist = []
|
||||
stderr_whitelist = [
|
||||
|
|
@ -204,8 +204,19 @@ def smoke_test(executable: pathlib.Path, debug: bool) -> None:
|
|||
r'\(0x80004002\)'),
|
||||
])
|
||||
|
||||
proc = _smoke_test_run(executable)
|
||||
if debug:
|
||||
try:
|
||||
proc = _smoke_test_run(executable)
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Smoke test failed: {e}, running with --debug")
|
||||
smoke_test_debug(
|
||||
executable,
|
||||
original_stdout=e.stdout.decode("utf-8"),
|
||||
original_stderr=e.stderr.decode("utf-8"),
|
||||
issue_description=str(e),
|
||||
)
|
||||
return
|
||||
|
||||
if debug_build:
|
||||
print("Skipping output check for debug build")
|
||||
return
|
||||
|
||||
|
|
@ -214,48 +225,64 @@ def smoke_test(executable: pathlib.Path, debug: bool) -> None:
|
|||
|
||||
if stdout or stderr:
|
||||
print("Unexpected output, running with --debug")
|
||||
proc = _smoke_test_run(executable, '--debug')
|
||||
debug_stdout = proc.stdout.decode('utf-8')
|
||||
debug_stderr = proc.stderr.decode('utf-8')
|
||||
smoke_test_debug(
|
||||
executable,
|
||||
original_stdout=stdout,
|
||||
original_stderr=stderr,
|
||||
issue_description="Unexpected output",
|
||||
)
|
||||
|
||||
lines = [
|
||||
"Unexpected output!",
|
||||
|
||||
def smoke_test_debug(
|
||||
executable: pathlib.Path,
|
||||
*,
|
||||
original_stdout: str,
|
||||
original_stderr: str,
|
||||
issue_description: str,
|
||||
) -> None:
|
||||
"""Run smoke test in debug mode to get more output."""
|
||||
proc = _smoke_test_run(executable, '--debug')
|
||||
debug_stdout = proc.stdout.decode('utf-8')
|
||||
debug_stderr = proc.stderr.decode('utf-8')
|
||||
|
||||
lines = [
|
||||
issue_description,
|
||||
"",
|
||||
]
|
||||
if original_stdout:
|
||||
lines += [
|
||||
"stdout",
|
||||
"------",
|
||||
"",
|
||||
original_stdout,
|
||||
"",
|
||||
]
|
||||
if original_stderr:
|
||||
lines += [
|
||||
"stderr",
|
||||
"------",
|
||||
"",
|
||||
original_stderr,
|
||||
"",
|
||||
]
|
||||
if debug_stdout:
|
||||
lines += [
|
||||
"debug rerun stdout",
|
||||
"------------------",
|
||||
"",
|
||||
debug_stdout,
|
||||
"",
|
||||
]
|
||||
if debug_stderr:
|
||||
lines += [
|
||||
"debug rerun stderr",
|
||||
"------------------",
|
||||
"",
|
||||
debug_stderr,
|
||||
"",
|
||||
]
|
||||
if stdout:
|
||||
lines += [
|
||||
"stdout",
|
||||
"------",
|
||||
"",
|
||||
stdout,
|
||||
"",
|
||||
]
|
||||
if stderr:
|
||||
lines += [
|
||||
"stderr",
|
||||
"------",
|
||||
"",
|
||||
stderr,
|
||||
"",
|
||||
]
|
||||
if debug_stdout:
|
||||
lines += [
|
||||
"debug rerun stdout",
|
||||
"------------------",
|
||||
"",
|
||||
debug_stdout,
|
||||
"",
|
||||
]
|
||||
if debug_stderr:
|
||||
lines += [
|
||||
"debug rerun stderr",
|
||||
"------------------",
|
||||
"",
|
||||
debug_stderr,
|
||||
"",
|
||||
]
|
||||
|
||||
raise Exception("\n".join(lines)) # pylint: disable=broad-exception-raised
|
||||
raise Exception("\n".join(lines)) # pylint: disable=broad-exception-raised
|
||||
|
||||
|
||||
def verify_windows_exe(exe_path: pathlib.Path) -> None:
|
||||
|
|
@ -311,7 +338,7 @@ def build_mac(
|
|||
dist_path = pathlib.Path("dist")
|
||||
|
||||
utils.print_title("Running pre-dmg smoke test")
|
||||
smoke_test(_mac_bin_path(dist_path), debug=debug)
|
||||
smoke_test(_mac_bin_path(dist_path), debug_build=debug)
|
||||
|
||||
if skip_packaging:
|
||||
return []
|
||||
|
|
@ -334,7 +361,7 @@ def build_mac(
|
|||
subprocess.run(['hdiutil', 'attach', dmg_path,
|
||||
'-mountpoint', tmp_path], check=True)
|
||||
try:
|
||||
smoke_test(_mac_bin_path(tmp_path), debug=debug)
|
||||
smoke_test(_mac_bin_path(tmp_path), debug_build=debug)
|
||||
finally:
|
||||
print("Waiting 10s for dmg to be detachable...")
|
||||
time.sleep(10)
|
||||
|
|
@ -393,7 +420,7 @@ def _build_windows_single(
|
|||
verify_windows_exe(exe_path)
|
||||
|
||||
utils.print_title("Running smoke test")
|
||||
smoke_test(exe_path, debug=debug)
|
||||
smoke_test(exe_path, debug_build=debug)
|
||||
|
||||
if skip_packaging:
|
||||
return []
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import pytest
|
|||
from qutebrowser.qt import machinery
|
||||
from qutebrowser import qutebrowser
|
||||
from qutebrowser.config import qtargs, configdata
|
||||
from qutebrowser.utils import usertypes, version
|
||||
from qutebrowser.utils import usertypes, version, utils
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
|
@ -52,6 +52,7 @@ def reduce_args(config_stub, version_patcher, monkeypatch):
|
|||
config_stub.val.scrolling.bar = 'never'
|
||||
config_stub.val.qt.chromium.experimental_web_platform_features = 'never'
|
||||
config_stub.val.qt.workarounds.disable_accelerated_2d_canvas = 'never'
|
||||
config_stub.val.qt.workarounds.disable_accessibility = 'never'
|
||||
monkeypatch.setattr(qtargs.utils, 'is_mac', False)
|
||||
# Avoid WebRTC pipewire feature
|
||||
monkeypatch.setattr(qtargs.utils, 'is_linux', False)
|
||||
|
|
@ -117,6 +118,14 @@ def test_no_webengine_available(monkeypatch, config_stub, parser, stubs):
|
|||
assert args == [sys.argv[0]]
|
||||
|
||||
|
||||
_XFAIL_FUTURE_QT = (
|
||||
pytest.mark.xfail(
|
||||
utils.VersionNumber(6, 11) not in version.WebEngineVersions._CHROMIUM_VERSIONS,
|
||||
reason="Unknown security patch version for Qt 6.11 so far",
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures('reduce_args')
|
||||
class TestWebEngineArgs:
|
||||
|
||||
|
|
@ -190,6 +199,40 @@ class TestWebEngineArgs:
|
|||
args = qtargs.qt_args(parsed)
|
||||
assert ('--disable-accelerated-2d-canvas' in args) == has_arg
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"qt_version, qt6, value, has_arg",
|
||||
[
|
||||
("5.15.2", False, "auto", False),
|
||||
# 6.8.5 is broken too, but commercial-only
|
||||
("6.10.0", True, "always", True),
|
||||
("6.10.0", True, "auto", False),
|
||||
("6.10.1", True, "auto", True),
|
||||
("6.10.1", True, "never", False),
|
||||
("6.10.2", True, "always", True),
|
||||
("6.10.2", True, "auto", False),
|
||||
pytest.param("6.11.0", True, "always", True, marks=_XFAIL_FUTURE_QT),
|
||||
pytest.param("6.11.0", True, "auto", False, marks=_XFAIL_FUTURE_QT),
|
||||
],
|
||||
)
|
||||
def test_disable_accessibility(
|
||||
self,
|
||||
parser,
|
||||
version_patcher,
|
||||
config_stub,
|
||||
monkeypatch,
|
||||
qt_version,
|
||||
qt6,
|
||||
value,
|
||||
has_arg,
|
||||
):
|
||||
version_patcher(qt_version)
|
||||
config_stub.val.qt.workarounds.disable_accessibility = value
|
||||
monkeypatch.setattr(machinery, 'IS_QT6', qt6)
|
||||
|
||||
parsed = parser.parse_args([])
|
||||
args = qtargs.qt_args(parsed)
|
||||
assert ('--disable-renderer-accessibility' in args) == has_arg
|
||||
|
||||
@pytest.mark.parametrize('flags, args', [
|
||||
([], []),
|
||||
(['--debug-flag', 'chromium'], ['--enable-logging', '--v=1']),
|
||||
|
|
@ -471,6 +514,9 @@ class TestWebEngineArgs:
|
|||
# Qt 6.9
|
||||
('6.9.0', "DocumentPictureInPictureAPI,PermissionElement"),
|
||||
('6.9.1', "DocumentPictureInPictureAPI,PermissionElement"),
|
||||
# Qt 6.10
|
||||
('6.10.0', "DocumentPictureInPictureAPI,PermissionElement"),
|
||||
('6.10.1', "DocumentPictureInPictureAPI"),
|
||||
])
|
||||
def test_disable_feature_workaround(
|
||||
self, parser, version_patcher, qt_version, disabled
|
||||
|
|
|
|||
Loading…
Reference in New Issue