diff options
author | Florian Bruhin <me@the-compiler.org> | 2021-05-18 17:04:37 +0200 |
---|---|---|
committer | Florian Bruhin <me@the-compiler.org> | 2021-05-18 18:19:21 +0200 |
commit | 17c53063a091b754df0cc66c60f72c9dae262b7d (patch) | |
tree | a28910281f98b2526d7c03e3e6fadffb86407ff7 | |
parent | d79f6296ee88f8adcc548bf6ab0d0d8ebf0260d9 (diff) | |
download | qutebrowser-17c53063a091b754df0cc66c60f72c9dae262b7d.tar.gz qutebrowser-17c53063a091b754df0cc66c60f72c9dae262b7d.zip |
Add a new site-specific quirk for Google Docs
See #6464, #5472, #4805, #4810
e010afd3a20a86639396a9c844abfea7b23cc67a
https://bugreports.qt.io/browse/QTBUG-69652
(cherry picked from commit 8e617d010a5cd305ff42191ea6458a2d003b6d46)
-rw-r--r-- | doc/help/settings.asciidoc | 1 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 13 | ||||
-rw-r--r-- | qutebrowser/config/configdata.yml | 1 | ||||
-rw-r--r-- | qutebrowser/javascript/quirks/googledocs.user.js | 14 |
4 files changed, 27 insertions, 2 deletions
diff --git a/doc/help/settings.asciidoc b/doc/help/settings.asciidoc index 42eacd175..7a3d0c032 100644 --- a/doc/help/settings.asciidoc +++ b/doc/help/settings.asciidoc @@ -2692,6 +2692,7 @@ Valid values: * +ua-whatsapp+ * +ua-google+ * +ua-slack+ + * +ua-googledocs+ * +js-whatsapp-web+ * +js-discord+ * +js-string-replaceall+ diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index 15784d6bf..c793a1929 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -983,6 +983,11 @@ class _Quirk: QWebEngineScript.DocumentCreation) world: QWebEngineScript.ScriptWorldId = QWebEngineScript.MainWorld predicate: bool = True + name: Optional[str] = None + + def __post_init__(self): + if self.name is None: + self.name = f"js-{self.filename.replace('_', '-')}" class _WebEngineScripts(QObject): @@ -1154,6 +1159,11 @@ class _WebEngineScripts(QObject): ), _Quirk('discord'), _Quirk( + 'googledocs', + # will be an UA quirk once we set the JS UA as well + name='ua-googledocs', + ), + _Quirk( 'string_replaceall', predicate=versions.webengine < utils.VersionNumber(5, 15, 3), ), @@ -1171,8 +1181,7 @@ class _WebEngineScripts(QObject): if not quirk.predicate: continue src = resources.read_file(f'javascript/quirks/{quirk.filename}.user.js') - name = f"js-{quirk.filename.replace('_', '-')}" - if name not in config.val.content.site_specific_quirks.skip: + if quirk.name not in config.val.content.site_specific_quirks.skip: self._inject_js( f'quirk_{quirk.filename}', src, diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index 6cb277e5c..b8c2990c9 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -545,6 +545,7 @@ content.site_specific_quirks.skip: - ua-whatsapp - ua-google - ua-slack + - ua-googledocs - js-whatsapp-web - js-discord - js-string-replaceall diff --git a/qutebrowser/javascript/quirks/googledocs.user.js b/qutebrowser/javascript/quirks/googledocs.user.js new file mode 100644 index 000000000..7ec47f70d --- /dev/null +++ b/qutebrowser/javascript/quirks/googledocs.user.js @@ -0,0 +1,14 @@ +// ==UserScript== +// @include https://docs.google.com/* +// ==/UserScript== + +// Workaround for typing dead keys on Google Docs +// See https://bugreports.qt.io/browse/QTBUG-69652 + +"use strict"; + +Object.defineProperty(navigator, "userAgent", { + get() { + return "Mozilla/5.0 (X11; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0"; + }, +}); |