В расширениях для бразуера есть не только юзер скрипты, но и, так называемая, фоновая страница или фоновый скрипт (одно и то же). Это как бы скрытая вкладка самого расширения, которая всегда активна, пока активно расширение. В этой вкладке прямо в js можно хранить всё то, что нужно для работы расширения, а также выполнять задачи, затрагивающие расширение в целом. Например, можно делать ajax к любым доменам.
Чтобы из фоновой страницы сделать ajax запрос на какой-то домен, у расширения должны быть права на этот домен. Крайний вариант - задать расширению права на любые домены, но пользователи этого не очень любят, т.к. расширение потенциально сможет украсть ценные данные с личных вкладок пользователя, а если прав нет, то в любом случае не сможет.
Дать права можно в манифесте. Вот так выглядят права на все сайты (плюс на табы):
"permissions": [
"<all_urls>", "tabs"
],
Вот пример другого набора прав (на конкретные сайты плюс всякое):
"permissions": [
"https://toster.ru/*", "https://habr.com/*", "notifications", "storage"
],