nwjs / nw.js

Call all Node.js modules directly from DOM/WebWorker and enable a new way of writing applications with all Web technologies.
https://nwjs.io
MIT License
40.3k stars 3.88k forks source link

[Regression] No DOM on Cloudflared website, then NWJS crashes #8205

Open MikeZeDev opened 3 weeks ago

MikeZeDev commented 3 weeks ago

Issue Type

Before opening an issue, please search and see if it has already been raised.

Current/Missing Behavior

Trying to simply open a website that is using Cloudflare anti bot / turnstyle and :

nwjs-sdk-v0.84.0-win-x64 : website load properly

image

nwjs-sdk-v0.85.0-win-x64 : dont load, dont crash nwjs-sdk-v0.86.0-win-x64 : dont load, dont crash nwjs-sdk-v0.87.0-win-x64 : dont load, dont crash nwjs-sdk-v0.88.0-win-x64 : dont load, dont crash nwjs-sdk-v0.89.0-win-x64 : dont load, dont crash

image

nwjs-sdk-v0.90.0-win-x64: dont load + crash

Expected/Proposed Behavior

Website loads. I dont expect to pass CloudFlare but at least website should load.

Additional Info

I just made a tiny app with this as main file

app.js

async function OpenWindow() {
    await nw.Window.open('https://hivetoon.com');

    await new Promise((resolve) => { setTimeout(resolve, 5000);});

    nw.App.closeAllWindows();
    nw.App.quit();
}
OpenWindow();

package.json


{
    "name": "test",
    "version": "1.0",
    "description": "test",
    "type": "module",
    "main": "app.js"
}

358831647-51ca25a4-5a90-4b1b-b6de-3cf3f160413b

358832467-fbdcc5d9-3285-4d3c-a8a3-8533f1fec23b

Its crashing on ResumeParser. The "STATUS_Breakpoint" is interesting, as ive seen "debugger" instructions in CloudFlare scripts.

https://github.com/nwjs/nw.js/blob/74e469a0d4576af967076faccb79f1a73f566635/src/resources/api_nw_newwin.js#L833

=> First there is the regression that takes place in 0.85.0 and prevent DOM to be loaded => Since 0.90 its even crashing the whole app.

There is apparently no crash or rendering problem in case you manage to have the CloudFlare Clearance cookie (from other means)

ayushmanchhabra commented 3 weeks ago

PFA the stack trace for the above repro.

$: npm run dev

> @nwutils/cli@0.0.0 dev
> nw ./tests/fixtures/custom

[0818/103404.428513:ERROR:file_io_posix.cc(145)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
[0818/103404.428562:ERROR:file_io_posix.cc(145)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
[7174:7227:0818/103404.443605:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[7174:7227:0818/103404.443943:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[7174:7227:0818/103404.444192:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.EnumerateDevices: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
[7228:7228:0818/103405.274120:FATAL:app_window_custom_bindings.cc(108)] Check failed: false. 
#0 0x7f3c6dd0268e (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x71f968d)
#1 0x7f3c6dc5c89c (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x715389b)
#2 0x7f3c6dc5c77d (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x715377c)
#3 0x7f3c6dc45a70 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x713ca6f)
#4 0x7f3c6dc45ace (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x713cacd)
#5 0x7f3c6dc45503 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x713c502)
#6 0x7f3c6d273b54 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x676ab53)
#7 0x7f3c6926ad3b (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x2761d3a)
#8 0x7f3c6d2cddec (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x67c4deb)
#9 0x7f3c6b5cf55c (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x4ac655b)
#10 0x7f3c6b5cd7a1 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x4ac47a0)
#11 0x7f3c6b5cb41c (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x4ac241b)
#12 0x7f3c6b5cb15f (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x4ac215e)
#13 0x7f3c6a7865aa (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x3c7d5a9)
#14 0x7f3c6a785e1a (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x3c7ce19)
#15 0x7f3c6a6778ab v8::Function::Call()
#16 0x7f3c7113e9a4 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0xa6359a3)
#17 0x7f3c716429a5 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0xab399a4)
#18 0x7f3c71641e43 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0xab38e42)
#19 0x7f3c71641645 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0xab38644)
#20 0x7f3c71682b8d (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0xab79b8c)
#21 0x7f3c6d2d423c (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x67cb23b)
#22 0x7f3c6d2b41f9 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x67ab1f8)
#23 0x7f3c6d2a37b9 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x679a7b8)
#24 0x7f3c6d2a34dc (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x679a4db)
#25 0x7f3c6d29807d (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x678f07c)
#26 0x7f3c6d297b73 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x678eb72)
#27 0x7f3c6d298d47 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x678fd46)
#28 0x7f3c6d298a1c (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x678fa1b)
#29 0x7f3c6d292854 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x6789853)
#30 0x7f3c6d2cc31a (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x67c3319)
#31 0x7f3c6d2c1b65 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x67b8b64)
#32 0x7f3c6d2c1c56 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x67b8c55)
#33 0x7f3c6c5eb683 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x5ae2682)
#34 0x7f3c6e40ac5d (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x7901c5c)
#35 0x7f3c6e40fde0 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x7906ddf)
#36 0x7f3c6e40c06f (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x790306e)
#37 0x7f3c6e903084 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x7dfa083)
#38 0x7f3c6e903545 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x7dfa544)
#39 0x7f3c6dcaa1cf (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x71a11ce)
#40 0x7f3c6dcc3c75 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x71bac74)
#41 0x7f3c6dcc36db (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x71ba6da)
#42 0x7f3c6dcc4105 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x71bb104)
#43 0x7f3c6dc646ed (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x715b6ec)
#44 0x7f3c6dcc44a0 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x71bb49f)
#45 0x7f3c6dc8bc8f (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x7182c8e)
#46 0x7f3c73b0fdfe (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0xd006dfd)
#47 0x7f3c6d15ec93 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x6655c92)
#48 0x7f3c6d15fd7f (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x6656d7e)
#49 0x7f3c6d15d4a1 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x66544a0)
#50 0x7f3c6d15dac7 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x6654ac6)
#51 0x7f3c690d82e6 ChromeMain
#52 0x7f3c668ccd90 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x29d8f)
Task trace:
#0 0x7f3c6e900572 (/home/user/Git/nwutils/cli/node_modules/nw/nwjs-sdk-v0.90.0-linux-x64/lib/libnw.so+0x7df7571)
Crash keys:
  "gpu-gl-renderer" = "ANGLE (Microsoft Corporation, D3D12 (Intel(R) Iris(R) Xe Graphics), OpenGL 4.1 (Core Profile) Mesa 23.2.1-1ubuntu3.1~22.04.2)"
  "gpu-gl-vendor" = "Google Inc. (Microsoft Corporation)"
  "gpu-generation-intel" = "0"
  "gpu-vsver" = "1.00"
  "gpu-psver" = "1.00"
  "gpu-driver" = "23.2.1"
  "gpu_count" = "1"
  "gpu-devid" = "0x008e"
  "gpu-venid" = "0x1414"
  "view-count" = "1"
  "loaded-origin-0" = "chrome-extension://lgebegfpafccpjcllfkeibjdgdfhghhk"
  "web-frame-count" = "1"
  "extension-1" = "lgebegfpafccpjcllfkeibjdgdfhghhk"
  "num-extensions" = "1"
  "renderer_foreground" = "true"
  "v8_ro_space_firstpage_address" = "0x37d400000000"
  "v8_isolate_address" = "0x5601cd12d000"
  "variations" = "9481ce98-3d47f4f4,70678518-dee66fa8,be338734-dee66fa8,5f9907a9-dee66fa8,8eeccb9a-dee66fa8,2b465683-dee66fa8,52fc7926-ee3d6169,bc9b361d-dee66fa8,a41a7188-dee66fa8,ff71bfdc-dee66fa8,e7cc79d5-dee66fa8,4b935545-3d47f4f4,9a38bae3-3d47f4f4,2d1e43a3-3d47f4f4,386dc267-3d47f4f4,d69d967d-3695c92e,"
  "num-experiments" = "16"
  "reentry_guard_tls_slot" = "unused"
  "switch-19" = "--user-data-dir=/home/user/.config/custom-app"
  "switch-18" = "--variations-seed-version"
  "switch-17" = "--field-trial-handle=3,i,8828260097500174426,6783500408613390512"
  "switch-16" = "--shared-files=v8_context_snapshot_data:100"
  "switch-15" = "--launch-time-ticks=795487155"
  "switch-14" = "--time-ticks-at-unix-epoch=-1723956648960542"
  "switch-13" = "--renderer-client-id=5"
  "switch-12" = "--enable-main-frame-before-activation"
  "switch-11" = "--num-raster-threads=4"
  "switch-10" = "--lang=en-US"
  "switch-9" = "--no-zygote"
  "switch-8" = "--no-sandbox"
  "switch-7" = "--change-stack-guard-on-fork=enable"
  "switch-6" = "--extension-process"
  "switch-5" = "--nwjs"
  "switch-4" = "--nwapp-path=./tests/fixtures/custom"
  "switch-3" = "--user-data-dir=/home/user/.config/custom-app"
  "switch-2" = "--enable-crash-reporter=,"
  "switch-1" = "--crashpad-handler-pid=0"
  "num-switches" = "20"
  "osarch" = "x86_64"
  "pid" = "7228"
  "ptype" = "renderer"

[0818/103405.286207:ERROR:file_io_posix.cc(145)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq: No such file or directory (2)
[0818/103405.286248:ERROR:file_io_posix.cc(145)] open /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq: No such file or directory (2)
ayushmanchhabra commented 3 weeks ago

Would the fix be to revert this (NW.js specific) patch here (if anyone is willing to check, that'd be great)?

- content::RenderFrame* app_frame = nullptr;
+ content::RenderFrame* app_frame =
- app_frame =
    ExtensionFrameHelper::FindFrameFromFrameTokenString(context()->isolate(),
                                                        args[0]);