mitigation #12398129310238102983 for there are no bare clients issue (bare-mux issue)

This commit is contained in:
wearrrrr 2024-04-10 18:40:22 -05:00
parent c23e57939e
commit 2b5130a972
2 changed files with 15 additions and 8 deletions

View file

@ -1,6 +1,7 @@
<script> <script>
import { initTransport, loadSelectedTransportScript } from "./ts/TransportManager"; import { initTransport, registerSW, loadSelectedTransportScript } from "./ts/TransportManager";
loadSelectedTransportScript(); loadSelectedTransportScript();
registerSW();
let form = document.querySelector("form"); let form = document.querySelector("form");
let input = document.querySelector("input"); let input = document.querySelector("input");
document.addEventListener("astro:after-swap", initForm); document.addEventListener("astro:after-swap", initForm);

View file

@ -63,25 +63,31 @@ export default class TransportManager {
} }
export const TransportMgr = new TransportManager(); export const TransportMgr = new TransportManager();
export async function initTransport() {
export async function registerSW() {
return new Promise(async (resolve) => { return new Promise(async (resolve) => {
await registerRemoteListener(navigator.serviceWorker.controller!);
await navigator.serviceWorker await navigator.serviceWorker
.register("/sw.js", { .register("/sw.js", {
scope: window.__uv$config.prefix, scope: window.__uv$config.prefix,
}) })
.then((registration) => { .then((registration) => {
registration.update().then(() => { registration.update().then(() => {
TransportMgr.setTransport( console.log("Registered SW!")
TransportMgr.getTransport(), resolve(null);
localStorage.getItem("alu__wispUrl") || wispURLDefault
);
}); });
resolve(null);
}); });
}); });
} }
export async function initTransport() {
await registerRemoteListener(navigator.serviceWorker.controller!);
TransportMgr.setTransport(
TransportMgr.getTransport(),
localStorage.getItem("alu__wispUrl") || wispURLDefault
);
}
export async function loadUltraviolet(): Promise<void> { export async function loadUltraviolet(): Promise<void> {
return new Promise((resolve) => { return new Promise((resolve) => {
let UVBundle = document.createElement("script"); let UVBundle = document.createElement("script");