webext-tools
Advanced tools
| import chromeP from 'webext-polyfill-kinda'; | ||
| const listeners = new Map(); | ||
| let globalListenerAdded = false; | ||
| function isDuplicateError(error) { | ||
| return (error.includes('Cannot create item with duplicate id') | ||
| || error.includes('already exists in menus.create')); | ||
| return (error.includes('Cannot create item with duplicate id') // Chrome | ||
| || error.includes('already exists in menus.create') // Firefox | ||
| || error.includes('Identifier is already used') // Safari | ||
| ); | ||
| } | ||
@@ -29,3 +32,7 @@ /* Throws an error due to misconfiguration, unless misconfiguration can't be verified (Firefox cleans the manifest of unknown properties) */ | ||
| // Add single listener or else multiple `create` calls will register multiple listeners. | ||
| chrome.contextMenus.onClicked.addListener(globalListener); | ||
| // Safari (unlike Chrome/Firefox) does not deduplicate addListener calls, so we guard it manually. | ||
| if (!globalListenerAdded) { | ||
| chrome.contextMenus.onClicked.addListener(globalListener); | ||
| globalListenerAdded = true; | ||
| } | ||
| listeners.set(createSettings.id, onclick); | ||
@@ -32,0 +39,0 @@ } |
+1
-1
| { | ||
| "name": "webext-tools", | ||
| "version": "4.0.1", | ||
| "version": "4.0.2", | ||
| "description": "Utility functions for Web Extensions", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
13530
2.44%211
3.43%