Ver código fonte

don't await menus.update calls

Gildas 7 anos atrás
pai
commit
02cf9cbe48
1 arquivos alterados com 9 adições e 7 exclusões
  1. 9 7
      extension/ui/bg/ui-menu.js

+ 9 - 7
extension/ui/bg/ui-menu.js

@@ -304,12 +304,13 @@ singlefile.ui.menu = (() => {
 	async function refreshTab(tab) {
 		if (BROWSER_MENUS_API_SUPPORTED) {
 			const tabsData = await singlefile.tabsData.get();
+			const promises = [];
 			try {
 				const disabled = Boolean(!tabsData[tab.id] || !tabsData[tab.id].autoSave);
-				await menus.update(MENU_ID_AUTO_SAVE_DISABLED, { checked: disabled });
-				await menus.update(MENU_ID_AUTO_SAVE_TAB, { checked: !disabled });
-				await menus.update(MENU_ID_AUTO_SAVE_UNPINNED, { checked: Boolean(tabsData.autoSaveUnpinned) });
-				await menus.update(MENU_ID_AUTO_SAVE_ALL, { checked: Boolean(tabsData.autoSaveAll) });
+				promises.push(menus.update(MENU_ID_AUTO_SAVE_DISABLED, { checked: disabled }));
+				promises.push(menus.update(MENU_ID_AUTO_SAVE_TAB, { checked: !disabled }));
+				promises.push(menus.update(MENU_ID_AUTO_SAVE_UNPINNED, { checked: Boolean(tabsData.autoSaveUnpinned) }));
+				promises.push(menus.update(MENU_ID_AUTO_SAVE_ALL, { checked: Boolean(tabsData.autoSaveAll) }));
 				if (tab && tab.url) {
 					let selectedEntryId = MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + "default";
 					let title = browser.i18n.getMessage("menuCreateDomainRule");
@@ -323,13 +324,14 @@ singlefile.ui.menu = (() => {
 					}
 					Object.keys(profiles).forEach((profileName, profileIndex) => {
 						if (profileName == singlefile.config.DEFAULT_PROFILE_NAME) {
-							menus.update(MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + "default", { checked: selectedEntryId == MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + "default" });
+							promises.push(menus.update(MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + "default", { checked: selectedEntryId == MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + "default" }));
 						} else {
-							menus.update(MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + profileIndex, { checked: selectedEntryId == MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + profileIndex });
+							promises.push(menus.update(MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + profileIndex, { checked: selectedEntryId == MENU_ID_ASSOCIATE_WITH_PROFILE_PREFIX + profileIndex }));
 						}
 					});
-					await menus.update(MENU_ID_ASSOCIATE_WITH_PROFILE, { title });
+					promises.push(menus.update(MENU_ID_ASSOCIATE_WITH_PROFILE, { title }));
 				}
+				await Promise.all(promises);
 			} catch (error) {
 				/* ignored */
 			}