summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/changelog.asciidoc18
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py29
2 files changed, 38 insertions, 9 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc
index e51ef6d01..f4825d0af 100644
--- a/doc/changelog.asciidoc
+++ b/doc/changelog.asciidoc
@@ -18,6 +18,24 @@ breaking changes (such as renamed commands) can happen in minor releases.
v1.9.0 (unreleased)
-------------------
+Changed
+~~~~~~~
+
+- The `qute-pass` userscript now has a new `--extra-url-suffixes` (`-s`)
+ argument which passes extra URL suffixes to the tldextract library.
+- A stack is now used for `:tab-focus last` rather than just saving one tab.
+ Additionally, `:tab-focus` now understands `stack-prev` and `stack-next`
+ arguments to traverse that stack.
+- `:hint` now has a new `right-click` target which allows right-clicking
+ elements via hints.
+- The Terminus font has been removed from the default monospace fonts since it
+ caused trouble with HighDPI setups. To get it back, add either
+ `"xos4 Terminus"` or `Terminus` (depending on fontconfig version) to the
+ beginning of the `fonts.monospace` setting.
+- As a workaround for a Qt bug causing a segfault, desktop sharing is now
+ automatically rejected on Qt versions before 5.13.2. Note that screen sharing
+ still won't work on Linux until Qt 5.14.
+
Fixed
~~~~~
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index d79ad7a92..68ffa4196 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -820,25 +820,36 @@ class _WebEnginePermissions(QObject):
def _on_feature_permission_requested(self, url, feature):
"""Ask the user for approval for geolocation/media/etc.."""
page = self._widget.page()
+ grant_permission = functools.partial(
+ page.setFeaturePermission, url, feature,
+ QWebEnginePage.PermissionGrantedByUser)
+ deny_permission = functools.partial(
+ page.setFeaturePermission, url, feature,
+ QWebEnginePage.PermissionDeniedByUser)
if feature not in self._options:
log.webview.error("Unhandled feature permission {}".format(
debug.qenum_key(QWebEnginePage, feature)))
- page.setFeaturePermission(url, feature,
- QWebEnginePage.PermissionDeniedByUser)
+ deny_permission()
return
- yes_action = functools.partial(
- page.setFeaturePermission, url, feature,
- QWebEnginePage.PermissionGrantedByUser)
- no_action = functools.partial(
- page.setFeaturePermission, url, feature,
- QWebEnginePage.PermissionDeniedByUser)
+ if (
+ hasattr(QWebEnginePage, 'DesktopVideoCapture') and
+ feature in [QWebEnginePage.DesktopVideoCapture,
+ QWebEnginePage.DesktopAudioVideoCapture] and
+ qtutils.version_check('5.13', compiled=False) and
+ not qtutils.version_check('5.13.2', compiled=False)
+ ):
+ # WORKAROUND for https://bugreports.qt.io/browse/QTBUG-78016
+ log.webview.warning("Ignoring desktop sharing request due to "
+ "crashes in Qt < 5.13.2")
+ deny_permission()
+ return
question = shared.feature_permission(
url=url.adjusted(QUrl.RemovePath),
option=self._options[feature], msg=self._messages[feature],
- yes_action=yes_action, no_action=no_action,
+ yes_action=grant_permission, no_action=deny_permission,
abort_on=[self._tab.abort_questions])
if question is not None: