tor-browser

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

commit 79b1d440a6badab0b69de5166d7a0d7d0232d24b
parent 70126c608d61b9b40ba5d0cf34ac136b1f3e988f
Author: Julian Descottes <jdescottes@mozilla.com>
Date:   Thu,  4 Dec 2025 09:41:13 +0000

Bug 1975401 - [devtools] Wrap all async-storage promise rejections in error objects with additional details r=devtools-reviewers,nchevobbe

This will have limited value, but it should make the reports about IDB transactions look less buggy. See https://bugzilla.mozilla.org/show_bug.cgi?id=1975401#c3 for more details.

Differential Revision: https://phabricator.services.mozilla.com/D274953

Diffstat:
Mdevtools/shared/async-storage.js | 34++++++++++++++++++++++++++++------
1 file changed, 28 insertions(+), 6 deletions(-)

diff --git a/devtools/shared/async-storage.js b/devtools/shared/async-storage.js @@ -96,7 +96,11 @@ function getItem(itemKey) { req = store.get(itemKey); req.onerror = function getItemOnError() { console.error("Error in asyncStorage.getItem():", req.error.name); - reject(req.error); + reject( + new Error( + `async-storage failed to get item for key: ${itemKey}, error: ${req.error}` + ) + ); }; }, reject @@ -113,7 +117,11 @@ function setItem(itemKey, value) { const req = store.put(value, itemKey); req.onerror = function setItemOnError() { console.error("Error in asyncStorage.setItem():", req.error.name); - reject(req.error); + reject( + new Error( + `async-storage failed to set item for key: ${itemKey}, error: ${req.error}` + ) + ); }; }, reject @@ -130,7 +138,11 @@ function removeItem(itemKey) { const req = store.delete(itemKey); req.onerror = function removeItemOnError() { console.error("Error in asyncStorage.removeItem():", req.error.name); - reject(req.error); + reject( + new Error( + `async-storage failed to remove item for key: ${itemKey}, error: ${req.error}` + ) + ); }; }, reject @@ -147,7 +159,9 @@ function clear() { const req = store.clear(); req.onerror = function clearOnError() { console.error("Error in asyncStorage.clear():", req.error.name); - reject(req.error); + reject( + new Error(`async-storage failed to clear, error: ${req.error}`) + ); }; }, reject @@ -167,7 +181,11 @@ function length() { req = store.count(); req.onerror = function lengthOnError() { console.error("Error in asyncStorage.length():", req.error.name); - reject(req.error.name); + reject( + new Error( + `async-storage failed to retrieve length, error: ${req.error}` + ) + ); }; }, reject @@ -210,7 +228,11 @@ function key(n) { }; req.onerror = function keyOnError() { console.error("Error in asyncStorage.key():", req.error.name); - reject(req.error); + reject( + new Error( + `async-storage failed to retrieve key with n: ${n}, error: ${req.error}` + ) + ); }; }, reject