commit bfd944f556c8c4a200fc3a2418913f43bbed176a parent 21344205d11d227817a71ff6fb630052f187d299 Author: Olivia Hall <ohall@mozilla.com> Date: Thu, 11 Dec 2025 22:26:54 +0000 Bug 2004542 - Unhandled exception in AC GeckoSitePermissionsStorage r=geckoview-reviewers,android-reviewers,tcampbell This patch adds logging in the GV StorageController to warn in the event of crashes and handles the error in AC by returning null. Manually tested by changing the bundle query message to an invalid endpoint. Differential Revision: https://phabricator.services.mozilla.com/D275996 Diffstat:
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/permission/GeckoSitePermissionsStorage.kt b/mobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/permission/GeckoSitePermissionsStorage.kt @@ -362,11 +362,15 @@ class GeckoSitePermissionsStorage( private: Boolean, ): List<ContentPermission>? { return withContext(mainScope.coroutineContext) { - val geckoPermissions = geckoStorage.getPermissions(origin, private).await() - if (includeTemporary) { - geckoPermissions - } else { - geckoPermissions.filterNotTemporaryPermissions(geckoTemporaryPermissions) + try { + val geckoPermissions = geckoStorage.getPermissions(origin, private).await() + if (includeTemporary) { + geckoPermissions + } else { + geckoPermissions.filterNotTemporaryPermissions(geckoTemporaryPermissions) + } + } catch (_: Exception) { + null } } } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/StorageController.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/StorageController.java @@ -257,6 +257,10 @@ public final class StorageController { bundle -> { final GeckoBundle[] permsArray = bundle.getBundleArray("permissions"); return ContentPermission.fromBundleArray(permsArray); + }, + exception -> { + Log.w(LOGTAG, "An error occurred when getting permissions: " + exception); + return exception; }); }