Browse Source

make `create` async

Gildas 3 years ago
parent
commit
506ca179f6

+ 9 - 1
src/lib/single-file/browser-polyfill/chrome-browser-polyfill.js

@@ -238,7 +238,15 @@ if (typeof globalThis == "undefined") {
 				onClicked: {
 					addListener: listener => nativeAPI.contextMenus.onClicked.addListener(listener)
 				},
-				create: options => nativeAPI.contextMenus.create(options),
+				create: options => new Promise((resolve, reject) => {
+					nativeAPI.contextMenus.create(options, () => {
+						if (nativeAPI.runtime.lastError) {
+							reject(nativeAPI.runtime.lastError);
+						} else {
+							resolve();
+						}
+					});
+				}),
 				update: (menuItemId, options) => new Promise((resolve, reject) => {
 					nativeAPI.contextMenus.update(menuItemId, options, () => {
 						if (nativeAPI.runtime.lastError) {

+ 1 - 1
src/ui/bg/ui-menus.js

@@ -126,7 +126,7 @@ async function createMenus(tab) {
 		}
 		if (options.tabMenuEnabled) {
 			try {
-				menus.create({
+				await menus.create({
 					id: "temporary-id",
 					contexts: ["tab"],
 					title: "title"