Skip to content

Firefox Browser Extension Storage API 버그

작성일: at 오전 12:18

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

https://bugzilla.mozilla.org/show_bug.cgi?id=1833153