Minimal Android project demonstrating this bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1138160
- Clone the repo and open it in Android Studio
- Hit "Play" to launch the test app on a connected physical device
- Click on "Crash test case" button and behold the app crashing, if the device has one of the affected Chrome versions.
See MainActivity.kt where all the code is.
Starting from Chrome for Android version 86.0.4240.75, this innocent looking piece of code crashes, every time, on any Android version.
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(Uri.parse(url), "text/html")
intent.addCategory(Intent.CATEGORY_BROWSABLE)
startActivity(intent)
The exception:
android.content.ActivityNotFoundException: No Activity found to handle Intent
{ act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE]
dat=https://www.google.fi/... typ=text/html }
Even if you catch that exception instead of letting the app crash, in an Android app that depends on WebViews, you'll find that your app gets into a very strange state: existing WebViews stop handling any clicks on any links.
I also found that with slightly altered "open url" code, no exception is thrown.
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
intent.addCategory(Intent.CATEGORY_BROWSABLE)
startActivity(intent)
I've tested and seen the described behaviour in these versions:
- 86.0.4240.75
- 86.0.4240.99