🐛 fix(bestdebrid): keep CDP debugger attached until window close
Detaching the debugger before loadURL removed the registered anti-fingerprint scripts, causing blank pages. Now keep the debugger attached through page load and detach on window close. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
c2bb276c3d
commit
d6ba5aeae6
@ -193,10 +193,13 @@ export class BestDebridWebFallback {
|
|||||||
window.webContents.setUserAgent(BESTDEBRID_USER_AGENT);
|
window.webContents.setUserAgent(BESTDEBRID_USER_AGENT);
|
||||||
window.setMenuBarVisibility(false);
|
window.setMenuBarVisibility(false);
|
||||||
|
|
||||||
// Inject anti-fingerprint patches via CDP before any page JS runs
|
// Inject anti-fingerprint patches via CDP before any page JS runs.
|
||||||
// This hides Electron-specific properties that Cloudflare Turnstile detects
|
// The debugger must stay attached until after page load so the
|
||||||
|
// registered scripts actually execute on every new document.
|
||||||
|
let debuggerAttached = false;
|
||||||
try {
|
try {
|
||||||
window.webContents.debugger.attach("1.3");
|
window.webContents.debugger.attach("1.3");
|
||||||
|
debuggerAttached = true;
|
||||||
await window.webContents.debugger.sendCommand("Page.addScriptToEvaluateOnNewDocument", {
|
await window.webContents.debugger.sendCommand("Page.addScriptToEvaluateOnNewDocument", {
|
||||||
source: [
|
source: [
|
||||||
"Object.defineProperty(navigator, 'webdriver', { get: () => false });",
|
"Object.defineProperty(navigator, 'webdriver', { get: () => false });",
|
||||||
@ -205,12 +208,14 @@ export class BestDebridWebFallback {
|
|||||||
"window.chrome = { runtime: {}, loadTimes: function() {}, csi: function() {} };"
|
"window.chrome = { runtime: {}, loadTimes: function() {}, csi: function() {} };"
|
||||||
].join("\n")
|
].join("\n")
|
||||||
});
|
});
|
||||||
window.webContents.debugger.detach();
|
|
||||||
} catch {
|
} catch {
|
||||||
// CDP not available — continue without patches
|
// CDP not available — continue without patches
|
||||||
}
|
}
|
||||||
|
|
||||||
window.on("closed", () => {
|
window.on("closed", () => {
|
||||||
|
if (debuggerAttached) {
|
||||||
|
try { window.webContents.debugger.detach(); } catch { /* already detached */ }
|
||||||
|
}
|
||||||
if (this.loginWindow === window) {
|
if (this.loginWindow === window) {
|
||||||
this.loginWindow = null;
|
this.loginWindow = null;
|
||||||
this.loginWindowPartition = "";
|
this.loginWindowPartition = "";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user