ruffle-rs / ruffle

A Flash Player emulator written in Rust
https://ruffle.rs
Other
15.61k stars 809 forks source link

Does not load - https://www.4399.com/flash/198660_4.htm #15013

Closed wsxarcher closed 4 months ago

wsxarcher commented 8 months ago

Describe the bug

Black screen after 4399 loading

VM244896:1  Uncaught TypeError: Cannot read properties of null (reading 'cloneNode')
    at <anonymous>:1:552
    at <anonymous>:1:945

Expected behavior

Play the game

Content Location

https://www.4399.com/flash/198660_4.htm

Affected platform

Browser's extension

Operating system

Window 11

Browser

Edge/Chrome 120

Additional information

This game is part of a bigger effort to support 4399.com games. There might be other issues with this website, from how it handles Flash checks and many CORS issues. Unfortunately, some games cannot be easily debugged on desktop because the swf download other swf or do requests while logged in.

If Ruffle is not detected try to reload the page multiple times because of the known race condition on the Flash check. To avoid refreshing try this Tampermonkey user script 一键下载 flash 游戏 (greasyfork.org)

To solve these issues refers to previous issues such as:

Dinnerbone commented 4 months ago

Works in desktop, assuming this is ExternalInterface stubbiness:

  1. objectID should be set
  2. It does lots of call("new function(){...}()") which we don't support
Dinnerbone commented 4 months ago

With #16505 this technically is progressed!

However, the JS on that site is doing something like this: if node.name != "EMBED" { recreate() }

Unfortunately, I don't think there's any way for us to spoof this. Our node name is ruffle-embed, because we polyfill the embed tags.

danielhjacobs commented 4 months ago

However, the JS on that site is doing something like this: if node.name != "EMBED" { recreate() }

I didn't test it, but this may be progressed by #16520