I've developed a ios safari web extension for my app and everything seemed to work fine in the simulator and on my device.
However, I've noticed that in some cases when the user tries to give permission to the extension inside safari, the system displays an alert asking for permissions to all the sites saved in the user's keychain. It's really strange. I've not been able to always reproduce this behavior, sometimes it works normally and it asks for permission just for the domain where the user is on.
The issue has become a real problem when I've discovered that when the user has a lot of saved passwords for sites in the keychain, the Safari freezes when asking for permission and becomes absolutely unusable, forcing the user to close it.
Here is the manifest for my extension:
{
"manifest_version": 2,
"content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'",
"background": {
"scripts": [
"browser-polyfill.js",
"background.js"
],
"persistent": false
},
"content_scripts": [{
"js": [
"browser-polyfill.js",
"document-start.js"
],
"matches": [
"http://*/*",
"https://*/*"
],
"run_at": "document_start"
},
{
"js": [
"browser-polyfill.js",
"contentscript.js"
],
"matches": [
"http://*/*",
"https://*/*"
],
"run_at": "document_idle"
}
],
"browser_action": {
"default_icon": {
"19": "assets/images/logos/16x16_logo.png",
"38": "assets/images/logos/48x48_logo.png",
"48": "assets/images/logos/48x48_logo.png",
"64": "assets/images/logos/64x64_logo.png",
"128": "assets/images/logos/128x128_logo.png",
"256": "assets/images/logos/256x256_logo.png",
"512": "assets/images/logos/512x512_logo.png"
},
"default_popup": "popup.html"
},
"icons": {
"16": "assets/images/logos/16x16_logo.png",
"48": "assets/images/logos/48x48_logo.png",
"64": "assets/images/logos/64x64_logo.png",
"128": "assets/images/logos/128x128_logo.png",
"256": "assets/images/logos/256x256_logo.png",
"512": "assets/images/logos/512x512_logo.png"
},
"web_accessible_resources": [
"assets/*"
],
"permissions": [
"<all_urls>",
"cookies",
"storage",
"unlimitedStorage",
"webNavigation",
"notifications",
"nativeMessaging"
]
}
Here is the screenshot of the safari asking for permission to the extension to access 653 different websites that are registered in the user's keychain: