Ответ 1
Если Chrome не находит разрешения в манифесте, он обрабатывает запрос как обычный запрос. Это означает, что запрос будет по-прежнему успешным, если установлены правильные заголовки CORS. В противном случае запрос будет терпеть неудачу из-за той же политики происхождения.
Библиотека JavaScript API Google явно упоминает поддержку CORS:
Выполнение запроса: вариант 3
API Google поддерживают CORS. Посетите страницу CORS для получения дополнительной информации об использовании CORS для выполнения запросов.
Если это возможно, я по-прежнему рекомендую добавить разрешение в файл манифеста. Для простых запросов это не приносит никаких преимуществ. Для непростых запросов это будет половину количества запросов: непростым запросам всегда предшествует запрос preflight (OPTIONS), который проверяет, разрешен ли клиенту доступ к источнику.
Добавив разрешение на файл манифеста, Chrome не вернется в CORS и всегда будет использовать один сетевой запрос для завершения запроса. Отлично!
Однако... вы можете подумать еще раз, если вы являетесь автором уже развернутого расширения. Когда в файл манифеста добавляются новые разрешения для источника, расширение будет отключено до тех пор, пока пользователь не утвердит расширение. Диалоговое окно показывает "Удалить расширение" и "Включить" рядом друг с другом, поэтому есть шанс потерять пользователя.
Если вы хотите, вы можете преодолеть эту проблему, используя необязательное разрешение, активированное на странице параметров. Четко объясните на языке непрофессионала, что этот вариант улучшит скорость расширения и не забудьте указать, что потребуются дополнительные разрешения.