Files
ESH-Media/package.json
eshmeshek 82f7fa7545 fix(1.0.9): revert OAuth popup BrowserWindow — Google detects embedded popups
1.0.1 ("trusted-domains OAuth popups") changed setWindowOpenHandler to
return action:'allow' with overrideBrowserWindowOptions for trusted
domains (Google, Yandex, etc.), opening a real Electron BrowserWindow
as popup. The reasoning was that OAuth flows need window.opener +
postMessage. That's correct for some flows but wrong for YouTube-style
login, which uses straight redirect.

Worse: Google specifically detects popup-style embedded browsers
(Electron BrowserWindow has distinct fingerprint vs real Chrome popup)
and blocks them with "Возможно, этот браузер небезопасны". The user
reported this stopped working after 1.0.0 — that's why.

Restore the 1.0.0 behavior for trusted domains: deny the popup and call
view.webContents.loadURL(newUrl) in the same view. The OAuth flow now
happens as a normal in-place navigation: YouTube → accounts.google.com
→ (user logs in) → redirect back to YouTube. No popup, no fingerprint
mismatch. The only UX loss is the popup window aesthetic; behavior is
functionally identical and matches what worked in 1.0.0.

Untrusted cross-domain still asks for confirmation, same-origin popups
still navigate in-place — unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 22:31:37 +03:00

76 lines
1.8 KiB
JSON

{
"name": "ESH-Media",
"version": "1.0.9",
"private": true,
"main": "main.js",
"scripts": {
"dev:renderer": "vite",
"dev:electron": "node scripts/start-electron.js",
"dev": "concurrently \"npm:dev:renderer\" \"npm:dev:electron\"",
"build:renderer": "vite build",
"build:win": "npm run build:renderer && electron-builder --win",
"build:linux": "npm run build:renderer && electron-builder --linux",
"build": "npm run build:renderer && electron-builder --win --linux",
"dist": "electron-builder"
},
"dependencies": {
"@cliqz/adblocker-electron": "^1.34.0",
"cheerio": "^1.2.0",
"electron-updater": "^6.8.3",
"node-fetch": "^2.7.0",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"@vitejs/plugin-react": "^4.3.1",
"concurrently": "^8.2.2",
"electron": "^32.0.0",
"electron-builder": "^24.13.3",
"typescript": "^5.5.4",
"vite": "^5.4.2",
"wait-on": "^8.0.0"
},
"build": {
"appId": "com.ESH-Media",
"productName": "ESH-Media",
"asar": true,
"directories": {
"output": "release"
},
"files": [
"dist/**/*",
"main.js",
"preload.js",
"package.json",
"extensions/**/*"
],
"win": {
"target": [
"nsis",
"zip"
],
"icon": "public/favicon.ico"
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true
},
"linux": {
"target": [
"AppImage",
"deb"
],
"icon": "public/logo.png",
"category": "Utility"
},
"publish": [
{
"provider": "generic",
"url": "https://gitea.esh-service.ru/public/ESH-Media/releases/download/latest/"
}
]
}
}