import { RpcClient } from 'webextension-rpc'; import { contentScriptRpcServer } from '../content_script'; async function handleAnnotateSelection( info: browser.contextMenus.OnClickData, tab: browser.tabs.Tab, ) { await new RpcClient({ tabId: tab.id }).func( 'annotateSelection', )(); } function onContextMenuClick( info: browser.contextMenus.OnClickData, tab?: browser.tabs.Tab, ) { if (!tab) return; switch (info.menuItemId) { case 'annotate-selection': handleAnnotateSelection(info, tab); break; } } async function init() { // Create context menu item browser.contextMenus.create({ id: 'annotate-selection', title: 'Annotate selection', contexts: ['selection'], }); browser.contextMenus.onClicked.addListener(onContextMenuClick); } init();