seems shared/settings.js quite buggy, temporary fixed it, will replace it with chrome.storage