Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
2 of 3 tasks
MikeZeDev opened this issue Aug 17, 2024 · 3 comments
Open
2 of 3 tasks

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

MikeZeDev opened this issue Aug 17, 2024 · 3 comments
Labels
bug has-min-repro Has a minimum reproduction

Comments

@MikeZeDev
Copy link

MikeZeDev commented Aug 17, 2024

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)

@ayushmanchhabra
Copy link
Contributor

ayushmanchhabra commented Aug 18, 2024

PFA the stack trace for the above repro.

$: npm run dev

> @nwutils/[email protected] 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 ayushmanchhabra added bug has-min-repro Has a minimum reproduction labels Aug 18, 2024
@ayushmanchhabra
Copy link
Contributor

ayushmanchhabra commented Aug 19, 2024

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

@MikeZeDev
Copy link
Author

I'd really like to test the proposed patch but i am a bit lost on how to compile nwjs myself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug has-min-repro Has a minimum reproduction
Projects
None yet
Development

No branches or pull requests

2 participants