hmlendea / gfn-electron

Linux Desktop client for Nvidia's GeForce NOW game streaming service
GNU General Public License v3.0
488 stars 61 forks source link

[BUG] spoof-windows is broken #168

Closed cybik closed 1 year ago

cybik commented 1 year ago

Describe the bug

As titled: spoof-windows is broken. Specifically, if it worked, GeFN would be showing Genshin Impact, one of the rare titles on GeForce NOW which is specifically excluded from the list of games when you use GeFN from Linux.

To Reproduce

  1. Use Client on Linux
  2. Open GeForce NOW
  3. Search for the weeb game
  4. Be sad that it's not there

Screenshots

No response

Operating System

Pop_OS

Desktop Environment

KDE

Display Server

X11

Installation method

Flatpak, Appimage

Version

Latest

Is this a fresh install of the app or an update from a past version?

Fresh

Did this issue appear right away upon installation/updating, or spontaneously?

Yes

Additional context

No response

Hi-Phile commented 1 year ago

Update: Although the message below appeared, I found that I was able to load Apex Legends which is a free to play AAA Windows only game, so it seems to be working for that title, so maybe perhaps the OP should try it out. I used gfn-electron 1.10.0-1 from AUR.

I am not certain if this needs to be added, but when attempting to launch gfn --spoof-windows --trace-warnings the following was spit out, but the program launches and does appear, not sure is there a need to check further or if there's something else that is helpful:

$ geforcenow --spoof-windows --trace-warnings Using user agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36 Process arguments: /opt/geforcenow-electron/geforcenow-electron,--spoof-windows,--trace-warnings (node:27571) UnhandledPromiseRejectionWarning: Error: Could not connect at Socket.onerror (/opt/geforcenow-electron/resources/app/node_modules/discord-rpc/src/transports/ipc.js:32:16) at Object.onceWrapper (node:events:642:26) at Socket.emit (node:events:527:28) at emitErrorNT (node:internal/streams/destroy:157:8) at emitErrorCloseNT (node:internal/streams/destroy:122:3) at process.processTicksAndRejections (node:internal/process/task_queues:83:21) (Usegeforcenow --trace-warnings ...to show where the warning was created) (node:27571) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag--unhandled-rejections=strict(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) $ inxi -G Graphics: Device-1: AMD Cezanne driver: amdgpu v: kernel Display: x11 server: X.Org v: 21.1.4 with: Xwayland v: 22.1.3 driver: X: loaded: amdgpu unloaded: fbdev,modesetting,vesa gpu: amdgpu resolution: 1920x1080~60Hz OpenGL: renderer: AMD RENOIR (LLVM 14.0.6 DRM 3.47 5.19.10-arch1-1) v: 4.6 Mesa 22.1.7 OS: OS: RebornOS Linux [x86_64] Kernel: 5.19.10-arch1-1 DE: XFCE/X11

M2rsh commented 1 year ago

Chromium with changed user agent (https://github.com/ray-lothian/UserAgent-Switcher/) GET /cloudvariables/v3?cvName=BrowserClientCanary&deviceId=70746a7a-e3be-4c97-81a5-6b36c08841f4&userId=undefined&idpId=undefined&clientId=78589530426925203&clientVer=2.0.46.112&clientVariant=Release&deviceOS=Windows&deviceType=Desktop&deviceMake=undefined&deviceModel=undefined&deviceOSVersion=undefined&clientType=Browser&browserType=Chromium&clientParams=%7B%22osName%22:%22WINDOWS%22,%22domain%22:%22play.geforcenow.com%22,%22path%22:%22%2Fmall%2F%22%7D User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36

While on electron GET /cloudvariables/v3?cvName=BrowserClientCanary&deviceId=5a956349-4caa-42e9-bdea-b072f94dbe9a&userId=g2vofnTjNE6vwA1jH3IFOfF7S48VKBKbi_Napx_Na5U&idpId=PDiAhv2kJTFeQ7WOPqiQ2tRZ7lGhR2X11dXvM4TZSxg&clientId=78589530426925203&clientVer=2.0.46.112&clientVariant=Release&deviceOS=Linux&deviceType=Desktop&deviceMake=undefined&deviceModel=undefined&deviceOSVersion=5.10.0&clientType=Browser&browserType=Chrome&clientParams=%7B%22osName%22:%22LINUX%22,%22domain%22:%22play.geforcenow.com%22,%22path%22:%22%2Fmall%2F%22%7D User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36

It seems like User Agent wasn't spoofed properly I'll try to fix it For now you can just use Chromium or Chrome with User Agent switcher

hmlendea commented 1 year ago

Closing, as this should have been fixed as part of #184. If it still persists, feel free to comment and/or reopen this issue.