-
[해결된 문제] Chrome extension service worker inactive해결된 문제들 2021. 6. 4. 07:22
2021 1학기에 만들고 있는 Chrome extension은 Chrome 사용기록을 하루기준, 일주일 기준으로 보여주는 Timetracker 이다. 개발에 대한 자세한 내용은 완성이 되면 올리기로 하고, 우선 해결한 문제에 대해 작성한다.
background script에서는 setInterval를 이용해 1초마다 현재 사용중인 hostname 시간정보를 저장한다.
그러나 시간이 지나면 시간체크가 멈춰버리는 현상이 있었다.
며칠을 헤매다가 '확장 프로그램 관리' 페이지에서 이유를 확인할 수 있었다. (chrome://extensions/)
지금은 manifest를 v2로 낮춰서 뷰검사가 '백그라운드 페이지' 로 뜬다
manifest v3를 사용했을 때는 '서비스워커'로 뜰 것이다.
이 서비스 워커는 일정시간이 지나면 비활성화(inactive) 상태가 되며 동시에 setInterval, setTimeout도 중단된다.
https://developer.chrome.com/docs/extensions/mv3/migrating_to_service_workers/#alarms
따라서 공식 문서에는 setInterval 대신 chrome.alarms 를 사용하라고 알려준다. 하지만 chrome.alarms는 분단위로의 사용이 권장되기 때문에 나는 마음편하게 v3에서 v2로 manifest 버전을 낮추었다.
(v3로 시작했지만 알고보니 v3가 나온지 얼마되지 않아서 믿을만한 자료가 공식문서 뿐이라 힘들었던 점도 참작했다..)
결과적으로 background 페이지는 1초마다 시간을 잘 체크하게 되었다!
'해결된 문제들' 카테고리의 다른 글
React Native EISDIR: illegal operation on a directory (0) 2021.05.12 React Native version mismatch // 해결 (0) 2021.03.08