From ae82679a8f2c4ad9fd310e96ef042a1c490326a7 Mon Sep 17 00:00:00 2001 From: hensm Date: Sat, 15 Feb 2020 08:19:41 +0000 Subject: [PATCH] Hide cast and browser default menu items in extension pages --- ext/src/background/background.ts | 16 ++++++++++++++++ ext/src/manifest.json | 1 + ext/src/ui/popup/index.tsx | 6 ++++++ 3 files changed, 23 insertions(+) diff --git a/ext/src/background/background.ts b/ext/src/background/background.ts index 0f7e755..d568094 100755 --- a/ext/src/background/background.ts +++ b/ext/src/background/background.ts @@ -226,6 +226,22 @@ async function initMenus () { } }); + // Hide cast item on extension pages + browser.menus.onShown.addListener(info => { + if (info.pageUrl?.startsWith(browser.runtime.getURL(""))) { + browser.menus.update(menuIdCast, { + visible: false + }); + + browser.menus.refresh(); + } + }); + browser.menus.onHidden.addListener(() => { + browser.menus.update(menuIdCast, { + visible: true + }); + }); + browser.menus.onShown.addListener(async info => { // Only rebuild menus if whitelist menu present // WebExt typings are broken again here, so ugly casting diff --git a/ext/src/manifest.json b/ext/src/manifest.json index 2e6c401..ef06e5f 100755 --- a/ext/src/manifest.json +++ b/ext/src/manifest.json @@ -49,6 +49,7 @@ , "permissions": [ "history" , "menus" + , "menus.overrideContext" , "nativeMessaging" , "storage" , "tabs" diff --git a/ext/src/ui/popup/index.tsx b/ext/src/ui/popup/index.tsx index d7f22b6..fafc803 100755 --- a/ext/src/ui/popup/index.tsx +++ b/ext/src/ui/popup/index.tsx @@ -361,3 +361,9 @@ window.addEventListener("load", () => { , document.querySelector("#root")); }); + +window.addEventListener("contextmenu", () => { + browser.menus.overrideContext({ + showDefaults: false + }); +});