Commit Graph

25564 Commits

Author SHA1 Message Date
qutebrowser bot be7cf1ab15 Release v3.5.1 2025-06-05 14:55:01 +00:00
Florian Bruhin f58f9166ea Update changelog from main 2025-06-05 16:53:09 +02:00
Florian Bruhin 1380105c1e Update user agents
(cherry picked from commit 1217f7fa45)
2025-06-05 16:38:33 +02:00
Florian Bruhin 6dd2143592 tests: Ignore test_restart hang on Windows
(cherry picked from commit c1e7b6e8f3)
2025-06-05 15:10:35 +02:00
Florian Bruhin fbe0277024 tests: Ignore another bogus Chromium log message
(cherry picked from commit 2e343403de)
2025-06-05 15:10:35 +02:00
Florian Bruhin 69ca8f571f Merge branch 'main' into v3.5.x
We only had bugfixes merged so far, so this is easier than cherry-picking
things.
2025-06-05 14:22:55 +02:00
Florian Bruhin ced24549df Update changelog 2025-06-05 14:22:40 +02:00
Florian Bruhin 272693ef3e Adjust comment 2025-06-05 14:06:43 +02:00
Florian Bruhin 5926932a6d Update changelog 2025-06-05 14:06:03 +02:00
Florian Bruhin 3f31a0005a Fix mimetype for PDF.js files on Windows
With windows-2022 and windows-2025 on GitHub Actions,
we get:

    qutescheme:data_for_url:128 url: qute://pdfjs/web/viewer.mjs, path: /web/viewer.mjs, host pdfjs
    webenginequtescheme:requestStarted:105 Returning text/plain data

which causes:

    JS: [qute://pdfjs/build/pdf.mjs:0] Failed to load module script: Expected a
    JavaScript module script but the server responded with a MIME type of
    "text/plain". Strict MIME type checking is enforced for module scripts per
    HTML spec.

It's unclear why we get text/plain back there in the first place (can't
reproduce on a local Windows 11 install), but it's definitely wrong, so let's
just override that problematic case.
2025-06-05 13:41:28 +02:00
Florian Bruhin 9219869cb9 ci: Test on windows-2022 and windows-2025
windows-2019 is deprecated: https://github.com/actions/runner-images/issues/12045
2025-06-05 11:38:42 +02:00
Florian Bruhin 0b5f70f029 ci: Switch to Qt 6.9 for Windows/macOS
That's what we're shipping, so we should also test that.
2025-06-05 11:36:33 +02:00
Florian Bruhin bff2ad9086 version: Add QtWebEngine 6.9.1 2025-06-05 11:33:41 +02:00
Florian Bruhin 696a4490ff Hide Qt 6.9.1 IPC signal warning
The warning is triggered from inside Qt and most
likely bogus:
https://bugreports.qt.io/browse/QTBUG-137424

See https://github.com/qutebrowser/qutebrowser/pull/8595#issuecomment-2938912511
2025-06-05 11:17:35 +02:00
qutebrowser bot 9cf95165a9 Update dependencies 2025-06-04 06:44:58 +00:00
toofar f9eb71b4c8
Merge pull request #8593 from qutebrowser/update-dependencies
Update dependencies
2025-06-03 21:39:42 +12:00
toofar 422680046e Update PDF.js version extraction for 5.3.31
It's changed in this PR: https://github.com/mozilla/pdf.js/pull/19956
to have the version string as a comment in the file, instead of the
variable.

Making the regex more forgiving increases the chance of matching on the
wrong string on a past or future version. I've only tested with the
previous version (v5.2.133) and it seemed to still work there.

Changes I made to the regex:

* add the literal * to the match group of possible prefixes of pdfjsVersion
* make the quotes around the version optional
* make the semicolon at the end of the line optional
* add newline to the list of characters that can terminate the match
  group (otherwise it was matching across the end of the line up to the
  first string, kinda odd when there was a $ after the match group)
2025-06-02 20:51:30 +12:00
toofar 060f4a59d6 mypy: cast variable only on Qt5
We only have to cast these variables on Qt5. If we cast them on Qt6 mypy
warns of a redundant cast. If we ignore that warning mypy complains of a
redundant ignore on Qt5.

Add a conditional on `machinery.IS_QT5` and only cast it required.

But also move that conditional out to a utility function to avoid
duplicating code in the function doing the actual logic.

I'm re-using the `_T` generic TypeVar defined above. Not sure if it's
proper to re-use them or not. Doesn't python have a better way of
defining generics now?

I added the `valid-type` ignore because mypy was complaining:

    Variable "to_type" is not valid as a type

I'm not sure if there is some way to do it better, but `reveal_type()`
says that the call site is getting the right type back in the end.
2025-06-02 20:03:00 +12:00
qutebrowser bot 291dda69e5 Update dependencies 2025-06-02 04:26:41 +00:00
Florian Bruhin 329977b42c
Merge pull request #8587 from qutebrowser/update-dependencies
Update dependencies
2025-05-30 12:27:00 +02:00
Florian Bruhin 072b03a631 Avoid version warnings with PyQtWebEngine-Qt5 5.15.17
With PyQtWebEngine-Qt5 5.15.17 (Qt 5.15.19), we seem to run into similar issues
like we already did with Qt 6.5:

https://github.com/qutebrowser/qutebrowser/issues/7624#issuecomment-1474008470
9cb54b2099

However, skipping the ELF test is not enough, as we also get warnings
at runtime (as we don't have any API to get the version at runtime).

We don't care much about Qt 5 at this stage, so let's just not output
warnings in that case (and nothing in the code should care about the exact
QtWebEngine patch level beyond 5.15.2 anyways).

For most user-facing things, we *can* get the exact version number from
the user-agent, so this should not actually affect much.
2025-05-29 23:42:40 +02:00
Florian Bruhin 9ba931075b doc: Add Doom-One theme 2025-05-26 17:46:07 +02:00
qutebrowser bot 0de8337969 Update dependencies 2025-05-26 04:25:50 +00:00
Florian Bruhin aef5355436 Revert "flake8: Disable N808"
This reverts commit a14b986326.

Now allowed in pep8-naming 0.15.1.
2025-05-19 16:05:46 +02:00
Florian Bruhin 856aeb3f47 Avoid log spam on new QWebEngineView children
With Qt 6.9, Qt creates QObjects for accessibility
tree nodes, which result in a lot of log spam.

Fixes #8542
2025-05-19 16:04:58 +02:00
Florian Bruhin c86ddd11be
Merge pull request #8579 from qutebrowser/update-dependencies
Update dependencies
2025-05-19 10:20:20 +02:00
qutebrowser bot aab33cc596 Update dependencies 2025-05-19 04:24:12 +00:00
Florian Bruhin bb7bbb6ead eventfilter: Ignore QKeyEvents in ChildEventFilter
Based on crash reports, sometimes somehow a QKeyEvent gets lost in there.
2025-05-16 18:17:44 +02:00
Florian Bruhin 9447182809 Add debug logging for failed WebEngineHistory deserialization
This sometimes fails with 'The data stream has read past the end of the data in
the underlying device', which turns up in crash reports around once a month.

This is somewhat similar to https://bugreports.qt.io/browse/QTBUG-117489 - but
without knowing the data and without being able to reproduce, it's unclear what
the culprit could be.
2025-05-14 08:47:08 +02:00
Florian Bruhin 9c7a75616c ci: Switch to tox main branch 2025-05-13 12:32:02 +02:00
Florian Bruhin 858606c18d ci: Remove QtWebKit testing
It's broken in weird ways since recently (`:version` not loading,
segfault in test_version.py). Since nobody should be using it anyways,
there is no point in spending time on debugging a tricky issue.

Next step is probably ripping it out completely, but that's a separate
can of worms.

See #4039
2025-05-13 09:29:04 +02:00
Florian Bruhin 049cf49705
Merge pull request #8567 from qutebrowser/update-dependencies
Update dependencies
2025-05-13 09:25:35 +02:00
qutebrowser bot 4633a0704e Update dependencies 2025-05-12 04:22:23 +00:00
Florian Bruhin a2072db15d requirements: use full syntax for misc checks 2025-05-08 11:25:14 +02:00
Florian Bruhin 9685c5a383 requirements: Use patched tox for Python 3.14
See https://github.com/tox-dev/tox/issues/3523
2025-05-08 11:22:55 +02:00
Florian Bruhin c682ccb1b2 tests: Ignore more libEGL warnings 2025-05-08 10:17:03 +02:00
Florian Bruhin 81f65dbb46 docker: Install libxml2-legacy from official repos
Reverts:
- a3bdcca37b
- 1b7557b73b
- 06e7950588
- 9aef02e96c
- c5fe31e828
2025-05-08 09:21:35 +02:00
Florian Bruhin 6cbf2847c8 docker: Try working around QtWebKit issues 2025-05-07 17:59:15 +02:00
Florian Bruhin 74c7ff2641 tests: Properly delete webengine DownloadManager objects
We create the DownloadManager with parent=qapp, which means they will stick
around forever after the test finished.

While we disconnect the QWebEngineProfile::downloadRequested() signal,
we keep the DownloadManager around, which also keeps around its download-update
timers.

Those will then result in tests/unit/utils/usertypes/test_timer.py::test_early_timeout_check
being flaky, as their _validity_check_handler slot keeps getting called in the
background. Due to the globally mocked time.monotonic(), this results in
nonsensical error messages such as:

    Got logging message on logger misc with level WARNING:
    Timer download-update (id ...) triggered too early:
    interval 500 but only -1023.269s passed!

After this change, we now clean up those objects properly, thus fixing the
flakiness.

See #5390.
2025-05-07 14:06:03 +02:00
Florian Bruhin a4b3ca48df tests: Add sanity check for stray timer objects
This makes sure the test consistently fails if there is still some timer in the
background, instead of getting flaky.
2025-05-07 13:39:48 +02:00
Florian Bruhin 9f16a1f879 tests: Properly delete mode_manager instances
To fix a flaky tests/unit/utils/usertypes/test_timer.py::test_early_timeout_check
(where a download-update timer from an earlier test fails), I looked into what
usertypes.Timer instances where left over after a test finished.

It turns out that there were about 190 still existing "partial-match" and
"normal-inhibited" timers when breaking in test_timer.py, even when just running
tests in tests/unit/browser/ and tests/unit/utils/usertypes.

This is because we pass qapp as parent to the ModeManager we create, but that
means it will be forever alive if we don't take care of cleaning it up after a
test.

Perhaps our tests should have some sort of mechanism that checks whether there
are any "leftovers" after a test has finished (perhaps even as part of
pytest-qt?), but for now, let's just fix the issues we can directly see.
2025-05-07 13:22:10 +02:00
Florian Bruhin ed99c82440 tests: Fix pattern 2025-05-06 14:41:13 +02:00
Florian Bruhin 20a9130cee Ignore a random Qt 5 log message
No idea where this came from...
2025-05-06 14:27:57 +02:00
Florian Bruhin 102f43cbde scripts: Ignore another stderr output on macOS 2025-05-06 14:08:00 +02:00
Florian Bruhin c5fe31e828 docker: Add link 2025-05-06 14:06:10 +02:00
Florian Bruhin 9aef02e96c docker: Don't install libxml2.13 for webkit 2025-05-06 10:28:17 +02:00
Florian Bruhin 06e7950588 docker: Always install base-devel 2025-05-06 09:18:07 +02:00
Florian Bruhin 1b7557b73b docker: Don't run makepkg as root 2025-05-06 09:15:27 +02:00
Florian Bruhin 5e6a878f64 docker: Also downgrade libarchive for QtWebEngine 2025-05-06 09:12:23 +02:00
Florian Bruhin a3bdcca37b docker: Install libxml2.13 2025-05-06 09:11:20 +02:00