could you check if `navigator.mozContacts.addEventListener('contactchange', function() { ... })` works ? I think it does because mozContacts implements EventTarget.