Fenix: [Bug] long press on startpage 'view image anonymously' crashes browser

Created on 28 Jul 2020  ·  11Comments  ·  Source: mozilla-mobile/fenix

Steps to reproduce

bug can be reproduced reliably by following steps on Fenix-based Firefox, tested on Beta & latest Nightly (Fennec unaffected)

  1. search for image on startpage search engine
  2. go to 'images' tab
  3. select image
  4. press 'view image anonymously'
  5. long press on resultant image

Expected behavior

long press should open dialog box as with other images

Actual behavior

browser locks up and crashes, freezing android system navigation until crash to desktop (cannot go back, open recent apps, go home)

Device information

  • Android device: Pixel 4 XL
  • Fenix version: 79.0.0-beta.8 (Build #2015752515)
AC-by-Fenix E3 ContextMenu crash engverified ac 🐞 bug

All 11 comments

Hi for me this does not crash immediately but causes a lot of unexpected behaviour. It does crash ultimately and here is the crash report


74895f15-857b-4e58-8b38-8927c0e34eba
java.lang.RuntimeException: android.os.DeadSystemException
 * Sentry: https://sentry.prod.mozaws.net/operations/firefox-nightly/?query=cc94be9a3ee449d4851591859f252665
 * Socorro: https://crash-stats.mozilla.org/report/index/bp-664a99d3-0c67-456b-b6dc-aa9200200728
----
java.lang.RuntimeException: android.os.DeadSystemException
    at android.content.ClipboardManager.getPrimaryClip(ClipboardManager.java:132)
    at org.mozilla.fenix.utils.ClipboardHandler.getText(ClipboardHandler.kt:2)
    at org.mozilla.fenix.utils.ClipboardHandler.getUrl(ClipboardHandler.kt:1)
    at org.mozilla.fenix.search.SearchFragment.onResume(SearchFragment.kt:16)
    at androidx.fragment.app.Fragment.performResume(Fragment.java:5)
    at androidx.fragment.app.FragmentStateManager.resume(FragmentStateManager.java:3)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:29)
    at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:4)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:97)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:75)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:11)
    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:4)
    at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:1)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6718)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: android.os.DeadSystemException
    ... 20 more


Looks like the problem is that the <image src=...> is a base64 image. Trying to build a simple test case is not working.

note: On other devices there is TransactionTooLargeException.

@sallzt , @s-ankur Is this still reproducible for you?

For QA: Can you test this on multiple devices? I've tested on two and it's not reproducible anymore for me. TY!

Hi, still reproducible on the latest Nightly Build 200831 using the following devices:
• Google Pixel 3a (Android 10)
• Huawei Mate 20 Lite (Android 10)

► Video
20200831-163839

hi, still reproducible on latest Nightly build 200831, Pixel 4 XL
behavior identical to before

After some investigation and a lot of help from @Mugurell it looks that this can be fixed in AC: https://github.com/mozilla-mobile/android-components/issues/8298.

Hi, verified as fixed on the latest Nightly Build 201007 using the following devices:
• Google Pixel 3a (Android 11)
• Huawei Mate 20 Lite (Android 10)
• OnePlus A3 (Android 6.0.1)

► Video
20201007-165327

This has been an old issue (since 79) so since it has been fixed in AC 61 / Fenix 83, I think we can let this ride the trains and not uplift. Most urls will not be this long, so this is a less common case.

Was this page helpful?
0 / 5 - 0 ratings