브라우저 익스텐션 개발 도중, fetch API를 사용해서 api서버로부터 데이터를 불러올때 CORS에러가 간헐적으로, 거의 랜덤으로 발생하는 문제가 있었다. 어쩔땐 되고, 어쩔땐 안되는 것이다.

처음에는 서버 측의 Access-Control-Allow-Origin HTTP header를 수정해주면 되는 문제라고 생각했는데, 알고보니 재석이는 그 부분을 이미 잘 해놨다고 했다.

그래서 검색을 다시 해본 결과, Manifest V3에서는 host_permissions와 관계가 있을 수 있다는 것을 알아냈다.

User controls for host permissions: transition guide - Chrome Developers

여기 공식문서를 참고하면,

“APIs that require host permissions include webRequest, cookies, tabs.executeScript(), and tabs.insertCSS(), and performing cross-origin requests, such as through an XMLHTTPRequest or the fetch() API.

라고 정확히 명시가 되어 있다. 그리하여 manifest.json에서 host_permissions 키에 API 도메인을 match pattern하는 식으로 설정해주니 오류가 없어졌다.