tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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:
Mmobile/android/android-components/components/browser/engine-gecko/src/main/java/mozilla/components/browser/engine/gecko/permission/GeckoSitePermissionsStorage.kt | 14+++++++++-----
Mmobile/android/geckoview/src/main/java/org/mozilla/geckoview/StorageController.java | 4++++
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; }); }