twitch-tools icon indicating copy to clipboard operation
twitch-tools copied to clipboard

[Bug] Surfshark VPN Extension causes unresponsive tab

Open hooov opened this issue 6 months ago • 2 comments

There has been an issue I've been having and I'm not sure if it's possible for you to fix it but essentially when Surfshark VPN Extension is installed whenever I try to use the Game dropdown menu in Channel Previews it causes the tab to become unresponsive.

Browser

[Brave 1.80.124 (Official Build) (64-bit)] Chromium: 138.0.7204.168

Extension

Surfshark VPN Extension Version: 4.30.0

Screenshot

Image

hooov avatar Jul 24 '25 04:07 hooov

The game dropdown has lots of entries so I'm not suprised if this could cause issues if there is some sort of analyzing (for whatever reason) is involved. I did remove the autocomplete option from the inputs which might fix this issue but without having the extension myself it's impossible for me to confirm

CommanderRoot avatar Jul 24 '25 05:07 CommanderRoot

Disabling the Automatic form filling in the SurfShark VPN extension fixes the issue, so personally it's not an issue for me but could be for others without them knowing the cause.

Image

If you wanted to look into it I've included the autofill.bundle.js below, here is also the relevant lines:

// line 22316
function Pa(e, t) {
	delete e.dataset[t]
}

// line 36099
return function() {
    r.abort(),
    r = new AbortController;
    const {signal: a} = r;
    window.clearTimeout(n),
    n = window.setTimeout(( () => (n => {
        if (n.aborted)
            return;
        const r = e.splice(0)
            , a = t.splice(0)
            , i = function() {
            const e = new Map;
            return t => {
                let n = e.get(t);
                return null != n || (n = t && t.isConnected && t instanceof Element && (vs(t).filter(ys).length > 0 || t.matches('input:not([type="hidden"]):not([type="submit"]):not([type="reset"]):not([type="button"]):not([type="image"]):not([type="file"]), select, textarea') && ys(t)),
                e.set(t, n)),
                n
            }
        }();
        for (const e of r) {
            const t = i(e.target);
            for (const n of e.addedNodes)
                if (t && n instanceof HTMLElement && !Na(n, "sharkidcontainer")) {
                    fy("processing added nodes", e);
                    const t = As();
                    return void hy.handle(t.fields)
                }
            for (const n of e.removedNodes)
                if (t && n instanceof HTMLElement && !Na(n, "sharkidcontainer")) {
                    fy("processing removed nodes", e);
                    const t = As();
                    return void hy.handle(t.fields)
                }
        }
        for (const e of a)
            if (i(e.target)) {
                fy("processing changed attributes", e);
                const t = As();
                return void hy.handle(t.fields)
            }
    }
    )(a)), 150)
}

autofill.bundle.txt

hooov avatar Jul 24 '25 21:07 hooov