plugins
plugins copied to clipboard
[webview_flutter] App crashes when a text is copied
How to reproduce:
- Set the
initialUrlof the example app to https://www.youtube.com. - Launch the app on a RPi device (recommended) or a mobile emulator.
- Play any video and click the settings button (⚙️) in the player.
- Once the "Playback Settings" window pops up, click the "Copy Debug Info" button.
- Click the "Copy" button and the app will crash with a segmentation fault.
Thread 1 "Runner.dll" received signal SIGSEGV, Segmentation fault.
0xaa6d40de in ?? () from target:/lib/libelementary.so.1
(gdb) bt
#0 0xaa6d40de in ?? () from target:/lib/libelementary.so.1
#1 0xaa55705f in elm_cnp_selection_set () from target:/lib/libelementary.so.1
#2 0x90a9322f in ?? () from target:/usr/share/chromium-efl/lib/libchromium-impl.so
Image info: tizen-unified_20220706.2_tizen-headed-aarch64 (Tizen 7.0)
Another issue: Changing the playback speed to 2.0 also crashes the app on RPi.
(lldb) Process 1880 stopped
* thread #1, name = 'Runner.dll', stop reason = signal SIGSEGV: invalid address (fault address: 0x30)
frame #0: 0x0000007e96a04b30 libchromium-impl.so
-> 0x7e96a04b30: ldr w19, [x0, #0x8]
0x7e96a04b34: mov w0, #-0x1
0x7e96a04b38: str w0, [x1, #0x8]
0x7e96a04b3c: cmp w19, w0
bt
* thread #1, name = 'Runner.dll', stop reason = signal SIGSEGV: invalid address (fault address: 0x30)
* frame #0: 0x0000007e96a04b30 libchromium-impl.so
frame #1: 0x0000007fb02e9a2c libecore.so.1`___lldb_unnamed_symbol697$$libecore.so.1 + 108
frame #2: 0x0000007fafb25a80 libeo.so.1`___lldb_unnamed_symbol103$$libeo.so.1 + 16
To reproduce the issue, you need to set the WebView.userAgent value to something like "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36" since the page is displayed in a mobile UI by default and you cannot really change the playback speed in that case.
Another issue: The mouse wheel doesn't work in a webview (on physical devices).
The webview is quite unstable and I encountered a SIGSEGV again when I was verifying myself as a human in namu.wiki.
(lldb) Process 79079 stopped
* thread #45, name = 'Chrome_InProcRe', stop reason = signal SIGSEGV: invalid address (fault address: 0x28)
frame #0: 0x0000007e7c33e490 libchromium-impl.so
-> 0x7e7c33e490: ldr x0, [x0, #0x28]
0x7e7c33e494: ldr x1, [x0]
0x7e7c33e498: ldr x1, [x1, #0x138]
0x7e7c33e49c: blr x1
bt
* thread #45, name = 'Chrome_InProcRe', stop reason = signal SIGSEGV: invalid address (fault address: 0x28)
* frame #0: 0x0000007e7c33e490 libchromium-impl.so
frame #1: 0x0000007f810bfe7c libc.so.6`thread_start at clone.S:78

CC @bwikbs @Swanseo0
Anyone who is interested in this issue and can afford to take a look at it, please try it (including me, of course) and don't forget to share it if there's any progress!
Similar issue:
A SIGSEGV crash occurred on wearable 5.5 emulator when I changed the backing webview implementation of google_maps_flutter_tizen from LWE to EWK.
(gdb) bt
#0 0xabd98dc9 in ecore_wl2_window_id_get () from target:/lib/libecore_wl2.so.1
#1 0x9450c3ab in ?? () from target:/usr/share/chromium-efl/lib/libchromium-impl.so
Backtrace stopped: previous frame inner to this frame (corrupt stack?)