plugins icon indicating copy to clipboard operation
plugins copied to clipboard

[webview_flutter] App crashes when a text is copied

Open swift-kim opened this issue 2 years ago • 5 comments

How to reproduce:

  1. Set the initialUrl of the example app to https://www.youtube.com.
  2. Launch the app on a RPi device (recommended) or a mobile emulator.
  3. Play any video and click the settings button (⚙️) in the player.
  4. Once the "Playback Settings" window pops up, click the "Copy Debug Info" button.
  5. 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)

swift-kim avatar Jan 12 '23 09:01 swift-kim

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.

swift-kim avatar Jan 13 '23 03:01 swift-kim

Another issue: The mouse wheel doesn't work in a webview (on physical devices).

swift-kim avatar Jan 13 '23 03:01 swift-kim

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

0x5578402b20_0

swift-kim avatar Jan 13 '23 08:01 swift-kim

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!

bbrto21 avatar Jan 18 '23 00:01 bbrto21

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?)

swift-kim avatar Mar 09 '23 08:03 swift-kim