From 214b3fd89f67cf8bd2e9c7b751e5b4e25d661eef Mon Sep 17 00:00:00 2001 From: Dave Shoreman Date: Sun, 21 Nov 2021 10:38:38 +0000 Subject: [PATCH] Add Greasemonkey compatibility Greasemonkey in Firefox doesn't have the GM_xmlhttpRequest function, so the script breaks when it tries to call the function. This adds a check before falling back to Greasemonkey's GM.xmlHttpRequest() if available. --- .../UserScript/Return Youtube Dislike.user.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Extensions/UserScript/Return Youtube Dislike.user.js b/Extensions/UserScript/Return Youtube Dislike.user.js index 0185af2..c008875 100644 --- a/Extensions/UserScript/Return Youtube Dislike.user.js +++ b/Extensions/UserScript/Return Youtube Dislike.user.js @@ -14,12 +14,24 @@ // @downloadURL https://github.com/Anarios/return-youtube-dislike/raw/main/Extensions/UserScript/Return%20Youtube%20Dislike.user.js // @updateURL https://github.com/Anarios/return-youtube-dislike/raw/main/Extensions/UserScript/Return%20Youtube%20Dislike.user.js // @grant GM_xmlhttpRequest +// @grant GM.xmlHttpRequest // ==/UserScript== function cLog(text, subtext = '') { subtext = subtext.trim() === '' ? '' : `(${subtext})`; console.log(`[Return Youtube Dislikes] ${text} ${subtext}`); } +function doXHR(opts) { + if (typeof GM_xmlhttpRequest === 'function') { + return GM_xmlhttpRequest(opts); + } + if (typeof GM.xmlHttpRequest === 'function') { + return GM.xmlHttpRequest(opts); + } + + console.error('Unable to detect UserScript plugin.'); +} + function getButtons() { return document .getElementById("menu-container") @@ -72,7 +84,7 @@ function setDislikes(dislikesCount) { function setState() { cLog('Fetching votes...'); - GM_xmlhttpRequest({ + doXHR({ method: "GET", responseType: "json", url: