INNER CODE UNIT · JavaScript
menuUpdateLock
jatinkrmalik/LLMFeeder · extension/background.js:149
let menuUpdateLock = Promise.resolve(); // Mutex lock for menu operations
// Browser-specific contexts ('tab' is Firefox-only)
// Detect Firefox by checking for browser.menus API
// Chrome doesn't support "menus" permission, so browser.menus will be undefined
const isFirefox = typeof browser !== 'undefined' &&
typeof browser.menus !== 'undefined';
const PAGE_CONTEXTS = isFirefox
? ['page', 'selection', 'link', 'tab'] // Firefox supports 'tab' context
: ['page', 'selection', 'link']; // Chrome doesn't support 'tab'
// Helper to run menu operations with mutex lock
async function withMenuLock(operation) {
menuUpdateLock = menuUpdateLock.then(async () => {
await operation();
}).catch(err => {
console.error('Menu operation error:', err);