Would love to know this as well. Sadly SVG and theme_icons are currently only supported in Firefox.
Changing the extension icon based on dark mode / on runtime could be done in the background page. Keep in mind there are browsers which can't handle the onChange listener for matchMedia, so don't rely on that.
You can consider creating a feedback assist request: https://feedbackassistant.apple.com/ .
Post
Replies
Boosts
Views
Activity
Got the same issue. Seems basically all keys are included and marked as unsupported.
Any update on this? Still didn't hear anything on my feedback assistent ticket/case.
Had the exact same issue, tho it stated "extension is currently off" even tho it was turned on.
Can you share the source code here? Or at least /_locales/en/messages.json and /manifest.json?
Seems related to: https://developer.apple.com/forums/thread/112057
I got several users of reporting some extensions are missing in preferences as well. How can this be resolved?
Thanks for the reply. The URL is generated using browser.runtime.getURL().
I've filed feedback to the feedback assistant two months ago with ticket number FB8986072. I've yet to get a response on that tho.
Dealing with exactly the same issue. Were you able to find any workaround? Is there a way to follow the status of the issue?
To allow developers to enforce a more strict CSP. Basically without wildmark matches I have to leave out the directive completely.
For example, one use case is limiting the set of images an extension is able to load in their own context.
Normally, any image can be loaded within the extension, yet when you set this as CSP:
default-src: none; img-src: https:;
Only images from https can be loaded.
Feedback has been filed, #8968973
I've been dealing with the same issue! As temporary solution, I had to fall back to polling the storage for safari:
	const isSafari = chrome.runtime.getURL('').startsWith('safari-web-extension://');
	if (isSafari) {
		// browser.storage.onChanged.addListener
	} else {
		// setInterval browser.storage.sync.get
	}
Yet this is no way to work with storage. Is there a better way to detect if this is supported or not? (especially once safari fixed the issue)
The use case here is to help collapse permissions.
If you have these two content scripts:
{
			"css": [ "style-a.css" ],
			"matches": [ "https://*.example.com/*" ],
			"include_globs": [ "https://a.example.com/*style=a*" ],
			"run_at": "document_start"
},
{
			"css": [ "style-b.css" ],
			"matches": [ "https://*.example.com/*" ],
			"include_globs": [ "https://b.example.google.com/*style=b*" ],
			"run_at": "document_start"
}
The permissions for these content scripts would merge into *.example.com, and the permission would be a clean host permission.