diff --git a/functions/strategies/FirefoxStrategy.js b/functions/strategies/FirefoxStrategy.js index 77b15f453..ecd7b133a 100644 --- a/functions/strategies/FirefoxStrategy.js +++ b/functions/strategies/FirefoxStrategy.js @@ -1,5 +1,22 @@ -const firefoxStrategy = (req, _store) => new Promise((resolve, reject) => { +const firefoxWithProxy = (req, store) => new Promise((resolve, reject) => { + const eventListener = (event) => { + window.removeEventListener("firefoxExtSendRequestComplete", event); + + if (event.detail.error) reject(JSON.parse(event.detail.error)); + else resolve(JSON.parse(event.detail.response)); + }; + + window.addEventListener("firefoxExtSendRequestComplete", eventListener); + + window.firefoxExtSendRequest({ + method: "post", + url: store.state.postwoman.settings.PROXY_URL || "https://postwoman.apollotv.xyz/", + data: req + }); +}); + +const firefoxWithoutProxy = (req, _store) => new Promise((resolve, reject) => { const eventListener = (event) => { window.removeEventListener("firefoxExtSendRequestComplete", eventListener); @@ -12,4 +29,10 @@ const firefoxStrategy = (req, _store) => new Promise((resolve, reject) => { window.firefoxExtSendRequest(req); }); +const firefoxStrategy = (req, store) => { + if (store.state.postwoman.settings.PROXY_ENABLED) + return firefoxWithProxy(req, store); + else return firefoxWithoutProxy(req, store); +} + export default firefoxStrategy;