Cómo puedo hacer que un botón de acción del navegador se vea y actúe como una palanca

El objetivo es obtener una WebExtension para Firefox que pueda ser activada / desactivada por un usuario en la barra de herramientas, como un interruptor de encendido / apagado.

Estoy usando unbackground.js con este código:

browser.browserAction.onClicked.addListener(function (tab) {
    switch (button) {
        case 'turn-on':
            enable();
            break;
        case 'turn-off':
            disable();
            break;
    }
});
function enable() {
    browser.browserAction.setIcon({ path: '/ui/is-on.png', });
    browser.browserAction.setPopup({ popup: '/ui/turn-off.js', });
    browser.webNavigation.onCommitted.addListener(onTabLoad); 
} 
function disable() {
    browser.browserAction.setIcon({ path: '/ui/is-off.png', });
    browser.browserAction.setPopup({ popup: '/ui/turn-on.js', });
    browser.webNavigation.onCommitted.removeListener(onTabLoad); 
}
function onTabLoad(details) {
    browser.tabs.executeScript(details.tabId, {
        file: '/gc.js',
        allFrames true,
    }); 
}
enable(); // enable or disable by default

Obviamente estoy haciendo algo mal. Soy amable novato en la codificación. Este es un proyecto personal que estoy tratando de terminar.

Respuestas a la pregunta(1)

Su respuesta a la pregunta