nwjs/nw.js

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

MikeZeDev opened this issue · 3 comments

Issue Type

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

  • Bug Report

  • Feature Request

  • Successfully reproduced against the latest version of NW.js?

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

  • Operating System: Win10 x64
  • NW.js Version: 0.90 sdk
  • Code snippet:

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"
}
  • Crash report:
    When debugging the original app where i got the problem, i was able to pinpoint the exact place where it crashes

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.

appWindowNatives.ResumeParser(cWin.tabs[0].mainFrameToken, cWin.id);

=> 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)

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)

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]);