mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-17 15:26:23 +00:00
For #12345: catch SecurityException when calling reportFullyDrawn.
That's amazing! I've got the same combination on my luggage.
This commit is contained in:
parent
619545e5b9
commit
f3d51d7834
@ -7,6 +7,8 @@ package org.mozilla.fenix.ext
|
||||
import android.app.Activity
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import mozilla.components.support.base.log.Log
|
||||
import org.mozilla.fenix.perf.Performance
|
||||
|
||||
/**
|
||||
* Attempts to call immersive mode using the View to hide the status bar and navigation buttons.
|
||||
@ -22,3 +24,17 @@ fun Activity.enterToImmersiveMode() {
|
||||
or View.SYSTEM_UI_FLAG_FULLSCREEN
|
||||
or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls [Activity.reportFullyDrawn] while also preventing crashes under some circumstances.
|
||||
*/
|
||||
fun Activity.reportFullyDrawnSafe() {
|
||||
try {
|
||||
reportFullyDrawn()
|
||||
} catch (e: SecurityException) {
|
||||
// This exception is throw on some Samsung devices. We were unable to identify the root
|
||||
// cause but suspect it's related to Samsung security features. See
|
||||
// https://github.com/mozilla-mobile/fenix/issues/12345#issuecomment-655058864 for details.
|
||||
Log.log(Log.Priority.ERROR, Performance.TAG, e, "Unable to call reportFullyDrawn")
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import android.view.View
|
||||
import androidx.core.view.doOnPreDraw
|
||||
import kotlinx.android.synthetic.main.activity_home.*
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.ext.reportFullyDrawnSafe
|
||||
import org.mozilla.fenix.home.sessioncontrol.viewholders.topsites.TopSiteItemViewHolder
|
||||
import org.mozilla.fenix.perf.StartupTimelineStateMachine.StartupDestination.APP_LINK
|
||||
import org.mozilla.fenix.perf.StartupTimelineStateMachine.StartupDestination.HOMESCREEN
|
||||
@ -64,6 +65,6 @@ class StartupReportFullyDrawn {
|
||||
// - the difference in timing is minimal (< 7ms on Pixel 2)
|
||||
// - if we compare against another app using a preDrawListener, as we are with Fennec, it
|
||||
// should be comparable
|
||||
view.doOnPreDraw { activity.reportFullyDrawn() }
|
||||
view.doOnPreDraw { activity.reportFullyDrawnSafe() }
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user