RESOLVED DUPLICATE of bug 281644290336
Extension storage.onChanged API missing second callback parameter in Safari for iOS
https://bugs.webkit.org/show_bug.cgi?id=290336
Summary Extension storage.onChanged API missing second callback parameter in Safari f...
marcustyphoon
Reported 2025-03-24 13:32:52 PDT
As noted in https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/onChanged, a web extension storage listener callback registered with e.g. browser.storage.onChanged.addListener((changes, areaName) => console.log({ changes, areaName })) should have an areaName parameter with the string 'local' when triggered by e.g. browser.storage.local.set; it does in Chromium and Firefox. I am observing, however, that the parameter is undefined. Tested in iOS 18.1.1 in a content script in a Manifest v3 extension loaded via xcrun safari-web-extension-converter. (The extension in question is https://github.com/AprilSylph/XKit-Rewritten, though I don't have a Safari framework committed to git/specific test code.)
Attachments
Radar WebKit Bug Importer
Comment 1 2025-03-24 13:33:02 PDT
marcustyphoon
Comment 2 2025-03-24 14:13:02 PDT
Example code: https://github.com/marcustyphoon/storage-extension-test/tree/main/src This logs {changes: Object, areaName: "local"} in MacOS Safari 17.6 but {changes: Object, areaName: undefined} in Safari on iOS 18.1.1.
Carlos J.
Comment 3 2025-04-07 09:17:23 PDT
Tested in iOS 18.3.1, and the areaName has been returned. Seems it has been fixed with https://github.com/WebKit/WebKit/pull/35493 Related bug: https://bugs.webkit.org/show_bug.cgi?id=281644
Brent Fulgham
Comment 4 2025-05-21 14:33:49 PDT
*** This bug has been marked as a duplicate of bug 281644 ***
Brent Fulgham
Comment 5 2025-05-21 14:34:02 PDT
@Carlos J. Thank you for confirming.
Note You need to log in before you can comment on or make changes to this bug.