From aa647317e75b3bb31cf2f2a2378f39cd8bafd8a6 Mon Sep 17 00:00:00 2001 From: Daniel Jacobs Date: Wed, 26 Jun 2024 11:40:58 -0400 Subject: [PATCH] extension: Hide toggle for SWF redirect on browsers without support --- web/packages/extension/assets/css/options.css | 4 ++++ web/packages/extension/src/background.ts | 6 +++++- web/packages/extension/src/options.ts | 10 +++++++++- web/packages/extension/src/popup.ts | 8 ++++++++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/web/packages/extension/assets/css/options.css b/web/packages/extension/assets/css/options.css index 07906a6e6..e199d4c77 100644 --- a/web/packages/extension/assets/css/options.css +++ b/web/packages/extension/assets/css/options.css @@ -1,3 +1,7 @@ +.hidden { + display: none; +} + .logo { max-width: 224px; } diff --git a/web/packages/extension/src/background.ts b/web/packages/extension/src/background.ts index b5515c26a..fdf713f5e 100644 --- a/web/packages/extension/src/background.ts +++ b/web/packages/extension/src/background.ts @@ -141,14 +141,18 @@ async function enableSWFTakeover() { removeRuleIds: [1, 2, 3], addRules: rules, }); + } else { + utils.storage.sync.set({ responseHeadersUnsupported: true }); } } async function disableSWFTakeover() { - if (utils.declarativeNetRequest) { + if (utils.declarativeNetRequest && (await isHeaderConditionSupported())) { await utils.declarativeNetRequest.updateDynamicRules({ removeRuleIds: [1, 2, 3], }); + } else { + utils.storage.sync.set({ responseHeadersUnsupported: true }); } } diff --git a/web/packages/extension/src/options.ts b/web/packages/extension/src/options.ts index 452bfb207..4257116dc 100644 --- a/web/packages/extension/src/options.ts +++ b/web/packages/extension/src/options.ts @@ -2,7 +2,15 @@ import * as utils from "./utils"; import { bindOptions, resetOptions } from "./common"; import { buildInfo } from "ruffle-core"; -window.addEventListener("DOMContentLoaded", () => { +window.addEventListener("DOMContentLoaded", async () => { + const data = await utils.storage.sync.get({ + responseHeadersUnsupported: false, + }); + if (data["responseHeadersUnsupported"]) { + document + .getElementById("swf_takeover")! + .parentElement!.classList.add("hidden"); + } document.title = utils.i18n.getMessage("settings_page"); { const vt = document.getElementById("version-text")!; diff --git a/web/packages/extension/src/popup.ts b/web/packages/extension/src/popup.ts index 3daa16a16..e82fe68e1 100644 --- a/web/packages/extension/src/popup.ts +++ b/web/packages/extension/src/popup.ts @@ -155,6 +155,14 @@ async function displayTabStatus() { } window.addEventListener("DOMContentLoaded", async () => { + const data = await utils.storage.sync.get({ + responseHeadersUnsupported: false, + }); + if (data["responseHeadersUnsupported"]) { + document + .getElementById("swf_takeover")! + .parentElement!.classList.add("hidden"); + } bindOptions((options) => { savedOptions = options; optionsChanged();