Youtube keeps asking for device info permission
On the website youtube.com, if I navigate the website with follow-hint - it keeps asking for grant access to the device.
if I navigate with the mouse, the problem doesn't appear. Only when using the keyboard.
Precise recipe to reproduce the issue
For website-specific issues:
Can you reproduce this issue with Epiphany / GNOME Web (https://wiki.gnome.org/Apps/Web)? Well, Gnome Web doesn't have keyboard navigation - so no.
Information
- OS name+version: Linux G474G0 6.9.3-arch1-1 SMP PREEMPT_DYNAMIC Fri, 31 May 2024 15:14:45 +0000 x86_64 GNU/Linux
- Graphics card and driver: 00:02.0 VGA compatible controller: Intel Corporation WhiskeyLake-U GT2 [UHD Graphics 620]
- Desktop environment / Window manager name+version: i3wm
- Installation method (Flatpak, Guix, package manager, build from source): arch package official distribution (not community built)
- Output of
nyxt --system-information:
Nyxt version: 3.11.6
Renderer: GI-GTK
Operating system kernel: Linux 6.9.3-arch1-1
Lisp implementation: SBCL 2.4.4 (Dynamic space size: 3221225472)
Features: (:NYXT-GI-GTK :NYXT-GTK :NYXT-3.11 :NYXT-3 :NYXT-3.11.6
:CLIPBOARD-CONTENT-METHOD :SWANK :SLYNK :PLUMP-UTF-32 :PARENSCRIPT :NSYMBOLS
:FSET-EXT-STRINGS :SBCL+SAFE-STANDARD-READTABLE :NAMED-READTABLES :GLOBAL-VARS
:CL-FAD :LPARALLEL :21BIT-CHARS :CUSTOM-HASH-TABLE-NATIVE :CL-PPCRE-UNICODE
:CL-UNICODE :CL-JSON-DOUBLE-FLOAT-IS-SUBSUMED
:CL-JSON-SINGLE-FLOAT-IS-SUBSUMED :CHUNGA :FLEXI-STREAMS :CL-PPCRE :WEBKIT2
:WEBKIT-2.44.2 :WEBKIT-2.44 :WEBKIT-2 :WEBKIT2-CORS-ALLOWLIST
:WEBKIT2-PASTE-PLAINTEXT :WEBKIT2-TRACKING :WEBKIT2-MUTE :WEBKIT2-EMOJI
:WEBKIT2-MEDIA :WEBKIT2-SANDBOXING :GTK-3-22 :GTK-3-20 :GTK-3-18 :GTK-3-16
:GTK-3-14 :GTK-3-12 :GTK-3-10 :GTK-3-8 :GTK-3-6 :GTK-3-4 :GTK :GDK-3-22
:GDK-3-20 :GDK-3-18 :GDK-3-16 :GDK-3-14 :GDK-3-12 :GDK-3-10 :GDK-3-8 :GDK-3-6
:GDK-3-4 :CAIRO-1-10 :CAIRO-1-12 :GDK-PIXBUF :CLOSER-MOP :GLIB-2-30 :GLIB-2-32
:GLIB-2-34 :GLIB-2-36 :GLIB-2-38 :GLIB-2-40 :GLIB-2-42 :GLIB-2-44 :GLIB-2-46
:GLIB-2-48 :GLIB-2-50 :GLIB-2-52 :GLIB-2-54 :GLIB-2-56 :GLIB-2-58 :GLIB
:BORDEAUX-THREADS :LPARALLEL.WITH-CLTL2 :LPARALLEL.WITH-CAS
:LPARALLEL.WITH-STEALING-SCHEDULER :SPLIT-SEQUENCE
CFFI-FEATURES:FLAT-NAMESPACE CFFI-FEATURES:X86-64 CFFI-FEATURES:UNIX :CFFI
CFFI-SYS::FLAT-NAMESPACE ALEXANDRIA::SEQUENCE-EMPTYP :FAST-IO-SV :FAST-IO
:CL-JSON-CLOS :CL-JSON :SBCL-USES-SB-ROTATE-BYTE CHIPZ-SYSTEM:GRAY-STREAMS
:THREAD-SUPPORT :ASDF3.3 :ASDF3.2 :ASDF3.1 :ASDF3 :ASDF2 :ASDF :OS-UNIX
:NON-BASE-CHARS-EXIST-P :ASDF-UNICODE :ARENA-ALLOCATOR :X86-64 :GENCGC :64-BIT
:ANSI-CL :COMMON-LISP :ELF :IEEE-FLOATING-POINT :LINUX :LITTLE-ENDIAN
:PACKAGE-LOCAL-NICKNAMES :SB-CORE-COMPRESSION :SB-LDB :SB-PACKAGE-LOCKS
:SB-THREAD :SB-UNICODE :SBCL :UNIX)
ASDF version: 3.3.1
ASDF registries: (NYXT-SOURCE-REGISTRY ENVIRONMENT-SOURCE-REGISTRY)
Critical dependencies: (/build/nyxt/src/_build/cl-cffi-gtk/gtk/cl-cffi-gtk.asd
/build/nyxt/src/_build/cl-gobject-introspection/cl-gobject-introspection.asd
/build/nyxt/src/_build/cl-webkit/webkit2/cl-webkit2.asd)
Output when started from a shell
Nyxt version 3.11.6
<INFO> [11:25:17] Source location: #P"/usr/share/nyxt/"
<INFO> [11:25:17] Loading Lisp file #P"/home/yasha/.config/nyxt/auto-config.3.lisp".
<INFO> [11:25:17] Loading Lisp file #P"/home/yasha/.config/nyxt/config.lisp".
<INFO> [11:25:17] Listening to socket: #P"/run/user/1000/nyxt/nyxt.socket"
(nyxt:1464023): libenchant-WARNING **: 11:25:17.959: broker.vala:159: Error loading plugin: libnuspell.so.5: cannot open shared object file: No such file or directory
(nyxt:1464023): libenchant-WARNING **: 11:25:17.962: broker.vala:159: Error loading plugin: libvoikko.so.1: cannot open shared object file: No such file or directory
<INFO> [11:25:18] Loading #P"/home/yasha/.local/share/nyxt/history/default.lisp".
<INFO> [11:25:18] Restoring 1 buffer from history.
<INFO> [11:25:19] Loading #P"/home/yasha/.local/share/nyxt/auto-rules.lisp".
<INFO> [11:25:19] Loading #P"/home/yasha/.local/share/nyxt/hostlist-stevenblack.txt".
<INFO> [11:25:20] Loading "https://www.youtube.com/watch?v=3CbSNmiDKVE".
<INFO> [11:25:24] Finished loading "https://www.youtube.com/watch?v=3CbSNmiDKVE".
I can reproduce.
if I navigate with the mouse, the problem doesn't appear. Only when using the keyboard.
I think it's there when using the mouse or keyboard.
Also, it's not related to follow-hint, hence the title change.
process-permission-request would need to be refactored or abandoned altogether (see https://webkitgtk.org/reference/webkitgtk/stable/class.DeviceInfoPermissionRequest.html). But, given the poor performance of WebKitGTK on heavy pages like YouTube, it follows that it isn't a top priority.
Would you maybe have a suggestion for a workaround? Not having youtube working is a bit of limitation for a browser...
@yashasolutions I fully agree. It is indeed a big limitation. Unfortunately, Nyxt can only be as good as the underlying renderer is (in this case, WebKitGTK) when it comes to YouTube performance. That's why we're prioritizing #2989.
In the mean time, I'm afraid that the workaround would be to use alternative front-ends (see https://invidious.io/), tools such as http://ytdl-org.github.io/youtube-dl/, or to pass URLs directly to mpv.
The great thing about Nyxt is that it makes it easy to write your own workflows. So it's no surprise that there is an extension that redirects YouTube URLs to other front-ends. See https://github.com/kssytsrk/nx-freestance-handler.
Is there no way to just fully disable this kind of access request? I for one would like to set a default that no website could ever get access to any extended permissions whatsoever, and would like to never be asked about it. This is an option in all other browsers, even the mainstream ones.