manga-download / haruneko

Prototype of HakuNeko based on NW.js + TypeScript
https://haruneko-docs.pages.dev
99 stars 29 forks source link

NW & Electron Limitations #621

Open ronny1982 opened 1 month ago

ronny1982 commented 1 month ago

NW

User-Agent in Background Script not correctly applied

In newer versions of NW, the User-Agent in the background script (navigator.userAgent) defaults to Node.js/21. This results in always triggering the restart notification when assigning a User-Agent, even when the real User-Agent didn't changed. See also: https://github.com/nwjs/nw.js/issues/8162

Affected: https://github.com/manga-download/haruneko/blob/1874bcf37dea7a20a5ceb9f00fcdeb932139e59c/app/nw/src/ipc/RemoteProcedureCallContract.ts#L27

New Browser Window is inaccessible

When using a browser window to fetch a request (e.g., bypass CloudFlare) the window may be empty (no DOM or JavaScript access) or may have the same content as the application window.

Affected: https://github.com/manga-download/haruneko/blob/6ffcea94d553d0486e7d4154040fea2aa999431d/web/src/engine/platform/nw/FetchProvider.ts#L215

MediaSource not supported

When initialising a video element based on media source to stream frames, NW.js seems not to support the necessary MediaSource type. Also audio is missing in normal embedded MP4 video streams.

Electron

TBD