MCPcopy Create free account
hub / github.com/darkreader/darkreader / registerContextMenus

Method registerContextMenus

src/background/extension.ts:355–389  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

353 private static onCommand = debounce(75, Extension.onCommandInternal);
354
355 private static registerContextMenus() {
356 chrome.contextMenus.onClicked.addListener(async ({menuItemId, frameId, frameUrl, pageUrl}, tab) =>
357 Extension.onCommand(menuItemId as Command, tab && tab.id || null, frameId || null, frameUrl || pageUrl || null));
358 chrome.contextMenus.removeAll(() => {
359 Extension.registeredContextMenus = false;
360 chrome.contextMenus.create({
361 id: 'DarkReader-top',
362 title: 'Dark Reader',
363 }, () => {
364 if (chrome.runtime.lastError) {
365 // Failed to create the context menu
366 return;
367 }
368 const msgToggle = chrome.i18n.getMessage('toggle_extension');
369 const msgAddSite = chrome.i18n.getMessage('toggle_current_site');
370 const msgSwitchEngine = chrome.i18n.getMessage('theme_generation_mode');
371 chrome.contextMenus.create({
372 id: 'toggle',
373 parentId: 'DarkReader-top',
374 title: msgToggle || 'Toggle everywhere',
375 });
376 chrome.contextMenus.create({
377 id: 'addSite',
378 parentId: 'DarkReader-top',
379 title: msgAddSite || 'Toggle for current site',
380 });
381 chrome.contextMenus.create({
382 id: 'switchEngine',
383 parentId: 'DarkReader-top',
384 title: msgSwitchEngine || 'Switch engine',
385 });
386 Extension.registeredContextMenus = true;
387 });
388 });
389 }
390
391 private static async getShortcuts() {
392 const commands = await getCommands();

Callers 2

startMethod · 0.80
changeSettingsMethod · 0.80

Calls 1

addListenerMethod · 0.45

Tested by

no test coverage detected