2
0
mirror of https://github.com/fork-maintainers/iceraven-browser synced 2024-11-02 03:40:16 +00:00

[fenix] Fix blank custom tabs following an NPE.

Fixes https://github.com/mozilla-mobile/fenix/issues/1771.

This PR protects against the initial `NullPointerException` ever happening.

This is a rare case, and we do not have anything to go on at this point, so we fallback to a new intent, and the user is routed to the home activity.
This commit is contained in:
James Hugman 2019-04-18 16:32:56 +01:00 committed by Colin Lee
parent 8f35a7422e
commit 3e96e202e8

View File

@ -18,6 +18,11 @@ class IntentReceiverActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
// The intent property is nullable, but the rest of the code below
// assumes it is not. If it's null, then we make a new one and open
// the HomeActivity.
val intent = intent?.let { Intent(intent) } ?: Intent()
val isPrivate = PreferenceManager val isPrivate = PreferenceManager
.getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_key_private_mode), false) .getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_key_private_mode), false)
@ -27,11 +32,7 @@ class IntentReceiverActivity : Activity() {
components.utils.intentProcessor.process(intent) components.utils.intentProcessor.process(intent)
} }
val openToBrowser: Boolean val openToBrowser = when {
val intent = Intent(intent)
openToBrowser = when {
CustomTabConfig.isCustomTabIntent(SafeIntent(intent)) -> { CustomTabConfig.isCustomTabIntent(SafeIntent(intent)) -> {
intent.setClassName(applicationContext, CustomTabActivity::class.java.name) intent.setClassName(applicationContext, CustomTabActivity::class.java.name)
true true