From 1dd857a51af1c730e3902c88f4fcc14888665484 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Fri, 24 Aug 2018 23:31:04 +0200 Subject: [PATCH] Implement MouseLock permission Closes #3287 --- doc/changelog.asciidoc | 1 + qutebrowser/browser/webengine/webenginetab.py | 12 ++++++++++++ qutebrowser/config/configdata.yml | 9 +++++++++ 3 files changed, 22 insertions(+) diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc index 4ad838fc3..b353bd3ad 100644 --- a/doc/changelog.asciidoc +++ b/doc/changelog.asciidoc @@ -24,6 +24,7 @@ Added - The qute-pass userscript now has optional OTP support. - When `:spawn --userscript` is called with a count, that count is now passed to userscripts as `$QUTE_COUNT`. +- New `content.mouse_lock` setting to handle HTML5 pointer locking. Changed ~~~~~~~ diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 2c890b8a5..cfb809097 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -707,6 +707,18 @@ class _WebEnginePermissions(QObject): QWebEnginePage.MediaVideoCapture: 'record video', QWebEnginePage.MediaAudioVideoCapture: 'record audio/video', } + try: + options.update({ + QWebEnginePage.MouseLock: + 'content.mouse_lock', + }) + messages.update({ + QWebEnginePage.MouseLock: + 'hide your mouse pointer', + }) + except AttributeError: + # Added in Qt 5.8 + pass try: options.update({ QWebEnginePage.DesktopVideoCapture: diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index 89ac390e9..7d39bded8 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -354,6 +354,15 @@ content.geolocation: supports_pattern: true desc: Allow websites to request geolocations. +content.mouse_lock: + default: ask + type: BoolAsk + supports_pattern: true + backend: + QtWebKit: false + QtWebEngine: Qt 5.8 + desc: Allow websites to lock your mouse pointer. + content.headers.accept_language: type: name: String