Table of contents
Open Table of contents
Firefox 확장 프로그램의 Storage API 관련 버그
Firefox 브라우저를 위한 확장 프로그램에서 Storage API를 사용해 사용자 설정을 저장할 수 있다.
storage.onChanged 이벤트로 값의 변경 사항을 확인할 수 있는데, Chromium 계열의 브라우저에서는 문제가 없었으나 Firefox에서는 실제 값이 변경되지 않았는데도 이벤트가 발생했다.
browser.storage.local.onChanged.addListener(changes => {
for (const key in changes) {
const oldValue = changes[key].oldValue;
const newValue = changes[key].newValue;
if (oldValue !== newValue) {
// 여기에서 값이 변경되었음을 확인할 수 있다.
}
}
});
set, remove, clear 메소드가 실행될때마다 해당 이벤트가 발생하기 때문에 불필요한 자원 소모를 막기 위해 oldValue와 newValue를 직접 비교해야 한다.
참고자료
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/onChanged