in src/js/popup/popup.js [163:214]
init: async () => {
const { isAndroid } = await browser.storage.local.get(
"isAndroid"
);
// Add CSS class for custom Firefox for Android styles to the panel
if (isAndroid) {
document.body.classList.add("is-android")
}
// Set Navigation Listeners
const navigationButtons = document.querySelectorAll(".js-internal-link");
navigationButtons.forEach((button) => {
button.addEventListener("click", popup.events.navigationClick, false);
});
// Set Back Button Listeners
const backButtons = document.querySelectorAll(
".fx-relay-panel-header-btn-back"
);
backButtons.forEach((button) => {
button.addEventListener("click", popup.events.backClick, false);
});
sessionState.loggedIn = await popup.utilities.isUserSignedIn();
// Check if user is signed in to show default/sign-in panel
if (sessionState.loggedIn) {
popup.panel.update("masks");
popup.utilities.unhideNavigationItemsOnceLoggedIn();
// populateNewsFeed Also sets Notification Bug for Unread News Items
popup.utilities.populateNewsFeed();
} else {
popup.panel.update("sign-up");
document.body.classList.remove("is-loading");
}
// Set External Event Listerners
await popup.utilities.setExternalLinkEventListeners();
// Clear browser action "!" badge
await popup.utilities.clearBrowserActionBadge();
// Note: There's a chain of functions that run from init, and end with putting focus on the most reasonable element:
// Cases:
// If not logged in: focused on "Sign In" button
// (Both tiers) If no masks made: focused on primary generate mask button
// If free tier: focused on "Create mask" button
// If premium tier: focused in search bar
},