- The Core Issue
-
Problem: Video seeking (specifically backwards seeking using seekTo(target, true)) is extremely laggy/stuck in the webview_vanilla app, but works flawlessly when the identical index.html file is opened directly in Firefox.
-
Symptom Detail: When seeking back, the audio jumps correctly, but the video frame either remains stuck on the previous frame or only updates to a frame slightly before the last one. Forward seeking works as expected.
-
Reproducibility: 100% on this system. I tried to capture the problem on video (failed to capture sound): https://www.youtube.com/watch?v=FUeQI_P_kiM
-
Reason for opening an issue: Since it works as expected in Firefox, this seems to be a bug that is beyond my capability, so I'd like to help track it down.
- Software / Project Details
-
Jerry's Youtube Cutter: https://github.com/BlueriteSoul/jerrysYTcutter
-
Webview Library: webview/webview.h (Version/Commit Hash: 55b438d)
-
Backend Used: WebKitGTK 6.0 (as specified in build.sh)
-
Video Platform: YouTube IFrame API
-
Relevant JS Snippet (Seeking function):
player.seekTo(finalTarget, true); // The critical API call
// Followed by a 200ms timeout for frame update (SEEK_SETTLE_MS)
- System and Dependency Output
A. OS and Kernel:
uname -a; cat /etc/os-release
Linux archgram 6.17.2-arch1-1 #1 SMP PREEMPT_DYNAMIC Sun, 12 Oct 2025 12:45:18 +0000 x86_64 GNU/Linux
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
B. CPU and Graphics Drivers:
lscpu; lspci -k | grep -EA3 'VGA|3D|Display'
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 39 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Vendor ID: GenuineIntel
Model name: Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz
CPU family: 6
Model: 126
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
Stepping: 5
CPU(s) scaling MHz: 29%
CPU max MHz: 3900.0000
CPU min MHz: 400.0000
BogoMIPS: 2995.20
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush d
ts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc
art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf ts
c_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16
xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx
f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb ssbd ibrs ibpb stibp ibrs_
enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust sgx bmi1 avx
2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt i
ntel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves split_lo
ck_detect dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_r
eq vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni a
vx512_bitalg avx512_vpopcntdq rdpid sgx_lc fsrm md_clear flush_l1d arch_capabilit
ies
Virtualization features:
Virtualization: VT-x
Caches (sum of all):
L1d: 192 KiB (4 instances)
L1i: 128 KiB (4 instances)
L2: 2 MiB (4 instances)
L3: 8 MiB (1 instance)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-7
Vulnerabilities:
Gather data sampling: Mitigation; Microcode
Ghostwrite: Not affected
Indirect target selection: Mitigation; Aligned branch/return thunks
Itlb multihit: KVM: Mitigation: Split huge pages
L1tf: Not affected
Mds: Not affected
Meltdown: Not affected
Mmio stale data: Mitigation; Clear CPU buffers; SMT vulnerable
Old microcode: Not affected
Reg file data sampling: Not affected
Retbleed: Mitigation; Enhanced IBRS
Spec rstack overflow: Not affected
Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Enhanced / Automatic IBRS; IBPB conditional; PBRSB-eIBRS SW sequence;
BHI SW loop, KVM SW loop
Srbds: Mitigation; Microcode
Tsa: Not affected
Tsx async abort: Not affected
Vmscape: Not affected
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics G7 (rev 07)
Subsystem: LG Electronics, Inc. Device 0361
Kernel driver in use: i915
Kernel modules: i915
C. WebkitGTK / GTK Versions:
pacman -Qs webkitgtk | grep -E 'webkitgtk|Version'
local/webkitgtk-6.0 2.50.1-1
pacman -Qs gtk4 | grep -E 'gtk4|Version'
local/gtk4 1:4.20.2-3
pkg-config --cflags --libs gtk4 webkitgtk-6.0
-I/usr/include/webkitgtk-6.0 -I/usr/include/gtk-4.0 -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/harfbuzz -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glycin-2 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/pixman-1 -I/usr/include/graphene-1.0 -I/usr/lib/graphene-1.0/include -mfpmath=sse -msse -msse2 -I/usr/include/libsoup-3.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-6 -pthread -lwebkitgtk-6.0 -lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lvulkan -lgraphene-1.0 -lsoup-3.0 -lgio-2.0 -lgmodule-2.0 -pthread -ljavascriptcoregtk-6.0 -lgobject-2.0 -lglib-2.0
D. X11 vs Wayland (The Windowing System)
echo $XDG_SESSION_TYPE
wayland
E. Graphics Backend for WebKitGTK
vainfo
Trying display: wayland
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 25.3.4 ()
vainfo: Supported profile and entrypoints
VAProfileNone : VAEntrypointVideoProc
VAProfileNone : VAEntrypointStats
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointFEI
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointFEI
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointFEI
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointFEI
VAProfileHEVCMain : VAEntrypointEncSliceLP
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileHEVCMain10 : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointEncSliceLP
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile1 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileVP9Profile3 : VAEntrypointVLD
VAProfileHEVCMain422_10 : VAEntrypointVLD
VAProfileHEVCMain422_10 : VAEntrypointEncSlice
VAProfileHEVCMain444 : VAEntrypointVLD
VAProfileHEVCMain444 : VAEntrypointEncSliceLP
VAProfileHEVCMain444_10 : VAEntrypointVLD
VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP
Problem: Video seeking (specifically backwards seeking using seekTo(target, true)) is extremely laggy/stuck in the webview_vanilla app, but works flawlessly when the identical index.html file is opened directly in Firefox.
Symptom Detail: When seeking back, the audio jumps correctly, but the video frame either remains stuck on the previous frame or only updates to a frame slightly before the last one. Forward seeking works as expected.
Reproducibility: 100% on this system. I tried to capture the problem on video (failed to capture sound): https://www.youtube.com/watch?v=FUeQI_P_kiM
Reason for opening an issue: Since it works as expected in Firefox, this seems to be a bug that is beyond my capability, so I'd like to help track it down.
Jerry's Youtube Cutter: https://github.com/BlueriteSoul/jerrysYTcutter
Webview Library: webview/webview.h (Version/Commit Hash: 55b438d)
Backend Used: WebKitGTK 6.0 (as specified in build.sh)
Video Platform: YouTube IFrame API
Relevant JS Snippet (Seeking function):
A. OS and Kernel:
B. CPU and Graphics Drivers:
C. WebkitGTK / GTK Versions:
D. X11 vs Wayland (The Windowing System)
E. Graphics Backend for WebKitGTK