0

가비지 콜렉션이 재시작 할 수없는 추가 기능에 대해 작동하는 정확한 방법에 관해서는 약간 익숙하지 않습니다.부트 스트랩 addon : 시스템 종료시 적절한 정리를 수행하는 방법?

내 종료 기능에서 현재 정리가 필요한 모든 개체를 호출합니다. 이벤트 핸들러를 설정 한 외부 코드로 제거한 다음 모든 이벤트 핸들러를 삭제합니다.

그런 다음 모든 객체에 대해 delete namespace.ObjectA이라고 부릅니다. 네임 스페이스 자체는 bootstrap.js에서 만든 변수입니다. 이것이 필요한지 궁금하네요, 아니면 Firefox에서 addon의 shutdown 함수를 호출 한 후 bootstrap.js에서 모든 전역 변수를 제거한 후 내 addon 외부에서 도달 할 수없는 다른 모든 객체를 제거 할 것입니까?

분명히 종료 이유가 Firefox 응용 프로그램 종료 인 경우 정리 작업을 수행하지 않습니다.

내가 정리해야 할 것이 누락 되었습니까?

답변

1

재시작 할 수없는 애드온은 '사용 안함'또는 '제거'에서이를 수행해야합니다.

addon은 이벤트 리스너 & 옵저버를 제거해야합니다.
변수 인 네임 스페이스를 삭제하는 것은 중요하지 않으며 완료되지는 않으며 GC에 의해 수행됩니다.
또한 addon은 변경된 기본 설정을 원래 설정으로 되돌 리거나 재설정하지 않아야합니다.

당신이 말했듯이, 파이어 폭스 응용 프로그램을 종료 할 때는 대개 아무런 조치가 필요 없습니다.

참조 :

+0

@nus 나는 AMO에서 애드온 검토입니다. 위에 성능 문제가 있습니다. 포괄적 인 안내서가 없지만 [AMO/Reviewers/Guide/Reviewing] (https://wiki.mozilla.org/AMO/Reviewers/Guide/Reviewing)에서 검토자를위한 것이지만 가능할 수도 있습니다 개발자에게 유용합니다. – erosman

+0

참고해 주셔서 감사합니다. 매우 도움이됩니다. 그게 그만한 가치가 있다고 생각하기 때문에 대답에 덧붙였다. – nus

+0

@nus 좋은 분 ... Maglione은 AMO의 최고 관리자 리뷰어입니다.) – erosman