diff --git a/config-overrides.js b/config-overrides.js index d969632..44c6a2d 100644 --- a/config-overrides.js +++ b/config-overrides.js @@ -20,9 +20,15 @@ const banner = `// ==UserScript== // @grant GM_xmlhttpRequest // @grant GM.xmlhttpRequest // @grant GM_setValue -// @grant GM_getValue // @grant GM.setValue +// @grant GM_getValue // @grant GM.getValue +// @grant GM_deleteValue +// @grant GM.deleteValue +// @grant GM_addValueChangeListener +// @grant GM.addValueChangeListener +// @grant GM_removeValueChangeListener +// @grant GM.removeValueChangeListener // @connect translate.googleapis.com // @connect api-edge.cognitive.microsofttranslator.com // @connect edge.microsoft.com diff --git a/src/hooks/Storage.js b/src/hooks/Storage.js index 4ff78ae..48146a3 100644 --- a/src/hooks/Storage.js +++ b/src/hooks/Storage.js @@ -72,7 +72,10 @@ export function StoragesProvider({ children }) { if (isExt) { browser.storage.onChanged.removeListener(handleChanged); } else if (isGm) { - window.GM.removeValueChangeListener(handleChanged); + ( + window.GM_removeValueChangeListener || + window.GM.removeValueChangeListener + )(handleChanged); } else { window.removeEventListener("storage", handleChanged); } diff --git a/src/libs/fetch.js b/src/libs/fetch.js index 1e85257..25a44fb 100644 --- a/src/libs/fetch.js +++ b/src/libs/fetch.js @@ -16,7 +16,7 @@ import { const fetchGM = async (input, { method = "GET", headers, body } = {}) => new Promise((resolve, reject) => { try { - window.GM_xmlhttpRequest({ + (window.GM_xmlhttpRequest || window.GM.xmlhttpRequest)({ method, url: input, headers, diff --git a/src/libs/storage.js b/src/libs/storage.js index 5a63e5d..742b0ce 100644 --- a/src/libs/storage.js +++ b/src/libs/storage.js @@ -4,7 +4,7 @@ async function set(key, val) { if (isExt) { await browser.storage.local.set({ [key]: val }); } else if (isGm) { - await window.GM.setValue(key, val); + await (window.GM_setValue || window.GM.setValue)(key, val); } else { const oldValue = window.localStorage.getItem(key); window.localStorage.setItem(key, val); @@ -24,7 +24,7 @@ async function get(key) { const val = await browser.storage.local.get([key]); return val[key]; } else if (isGm) { - const val = await window.GM.getValue(key); + const val = await (window.GM_getValue || window.GM.getValue)(key); return val; } return window.localStorage.getItem(key); @@ -34,7 +34,7 @@ async function del(key) { if (isExt) { await browser.storage.local.remove([key]); } else if (isGm) { - await window.GM.deleteValue(key); + await (window.GM_deleteValue || window.GM.deleteValue)(key); } else { const oldValue = window.localStorage.getItem(key); window.localStorage.removeItem(key); @@ -77,7 +77,10 @@ function onChanged(handleChanged) { if (isExt) { browser.storage.onChanged.addListener(handleChanged); } else if (isGm) { - window.GM.addValueChangeListener("storage", handleChanged); + (window.GM_addValueChangeListener || window.GM.addValueChangeListener)( + "storage", + handleChanged + ); } else { window.addEventListener("storage", handleChanged); }