ruffle-rs / ruffle

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

Error on Wordpress 3.2.1 file upload #18179

Open DoomTay opened 1 month ago

DoomTay commented 1 month ago

Describe the bug

  1. Set up a local web server
  2. Extract Wordpress 3.2.1 to it, and set it up through the "installer" on the front page
  3. Extract Ruffle to "wp-includes/js/ruffle"
  4. Replace "wp-admin/media-upload.php" with the "media-upload.php" file from this ZIP
  5. Navigate to http://localhost/wp-admin/media-upload.php
  6. Alternatively, extract the above ZIP and navigate to http://localhost/standaloneflash.html
  7. Select an image to upload

This yields the error message below

Uncaught TypeError: fileObj is undefined
    fileQueued handlers.dev.js:18
    queueEvent swfupload.js:725
    executeNextEvent swfupload.js:745
    queueEvent swfupload.js:730
    setTimeout handler*SWFUpload.prototype.queueEvent swfupload.js:729
    fileQueued swfupload.js:844
    anonymous core.ruffle.dcfa3c9d8d109b5ae831.js line 1 > Function:3
    r ruffle-imports.js:38

Expected behavior

An image would be listed, indicating a successful upload. In the case of "standaloneflash.html", there should at least be the message "HTTP error." on the page

Content Location

http://localhost/wp-admin/media-upload.php or http://localhost/standaloneflash.html

Affected platform

Self-hosted version

Operating system

Windows 10

Browser

Mozilla Firefox 131.0

Additional information

3.2.1 is the last version of WordPress to utilize this Flash-based file uploader

Player Info

Allows script access: true Renderer: wgpu Adapter Backend: Gl Adapter Name: "ANGLE (NVIDIA, NVIDIA GeForce GTX 980 Direct3D11 vs_5_0 ps_5_0), or similar" Adapter Device Type: Other Adapter Driver Name: "" Adapter Driver Info: "WebGL 2.0" Enabled features: Features(TEXTURE_COMPRESSION_BC | FLOAT32_FILTERABLE | TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES) Available features: Features(DEPTH32FLOAT_STENCIL8 | PUSH_CONSTANTS | CLEAR_TEXTURE | MULTIVIEW) Current limits: Limits { max_texture_dimension_1d: 16384, max_texture_dimension_2d: 16384, max_texture_dimension_3d: 2048, max_texture_array_layers: 256, max_bind_groups: 4, max_bindings_per_bind_group: 1000, max_dynamic_uniform_buffers_per_pipeline_layout: 8, max_dynamic_storage_buffers_per_pipeline_layout: 0, max_sampled_textures_per_shader_stage: 16, max_samplers_per_shader_stage: 16, max_storage_buffers_per_shader_stage: 0, max_storage_textures_per_shader_stage: 0, max_uniform_buffers_per_shader_stage: 11, max_uniform_buffer_binding_size: 65536, max_storage_buffer_binding_size: 0, max_vertex_buffers: 8, max_buffer_size: 268435456, max_vertex_attributes: 16, max_vertex_buffer_array_stride: 255, min_uniform_buffer_offset_alignment: 256, min_storage_buffer_offset_alignment: 256, max_inter_stage_shader_components: 120, max_color_attachments: 8, max_color_attachment_bytes_per_sample: 32, max_compute_workgroup_storage_size: 0, max_compute_invocations_per_workgroup: 0, max_compute_workgroup_size_x: 0, max_compute_workgroup_size_y: 0, max_compute_workgroup_size_z: 0, max_compute_workgroups_per_dimension: 0, min_subgroup_size: 0, max_subgroup_size: 0, max_push_constant_size: 0, max_non_sampler_bindings: 1000000 } Surface quality: high Surface samples: 4 Surface size: (550, 400, 1) Player type: Object SWF URL: http://localhost/wp-includes/js/swfupload/swfupload.swf?preventswfcaching=1728113705855 Param wmode: window Param movie: http://localhost/wp-includes/js/swfupload/swfupload.swf?preventswfcaching=1728113705855 Param quality: high Param menu: false Param allowScriptAccess: always Param flashvars: movieName=SWFUpload_0&uploadURL=http%3A%2F%2Flocalhost%2Fwp-admin%2Fasync-upload.php&useQueryString=false&requeueOnError=false&httpSuccess=&assumeSuccessTimeout=0&params=post_id%3D0%26amp%3Bauth_cookie%3Dadmin%257C1729045622%257C3096c3195175cc5ac2f847ce457411e5%26amp%3Blogged_in_cookie%3Dadmin%257C1729045622%257C620bffd4a649eaa6bdfb085e561b7717%26amp%3B_wpnonce%3Da4054903cd%26amp%3Btype%3Dfile%26amp%3Btab%3Dtype%26amp%3Bshort%3D1&filePostName=async-upload&fileTypes=.&fileTypesDescription=All%20Files&fileSizeLimit=67108864b&fileUploadLimit=0&fileQueueLimit=0&debugEnabled=false&buttonImageURL=http%3A%2F%2Flocalhost%2Fwp-includes%2Fimages%2Fupload.png%3Fver%3D20100531&buttonWidth=132&buttonHeight=23&buttonText=%3Cspan%20class%3D%22button%22%3ESelect%20Files%3C%2Fspan%3E&buttonTextTopPadding=3&buttonTextLeftPadding=0&buttonTextStyle=.button%20%7B%20text-align%3A%20center%3B%20font-weight%3A%20bold%3B%20font-family%3A%22Lucida%20Grande%22%2CVerdana%2CArial%2C%22Bitstream%20Vera%20Sans%22%2Csans-serif%3B%20font-size%3A%2011px%3B%20text-shadow%3A%200%201px%200%20%23FFFFFF%3B%20color%3A%23464646%3B%20%7D&buttonAction=-110&buttonDisabled=false&buttonCursor=-1 Attribute 0: undefined Attribute 1: undefined Attribute 2: undefined Attribute 3: undefined Attribute 4: undefined Attribute 5: undefined

Page Info

Page URL: http://localhost/standaloneflash.html SWF URL: http://localhost/wp-includes/js/swfupload/swfupload.swf?preventswfcaching=1728113705855

Browser Info

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0 Platform: Win32 Has touch support: false

Ruffle Info

Version: 0.1.0 Name: nightly 2024-10-05 Channel: nightly Built: 2024-10-05T00:06:07.565Z Commit: eecb77a26442b9ef7cb9d85fc1b6d4f7f5df6db6 Is extension: false

Metadata

width: 300 height: 300 frameRate: 15 numFrames: 1 swfVersion: 9 backgroundColor: undefined isActionScript3: true uncompressedLength: 24815

Lord-McSweeney commented 1 month ago

This seems like a problem with the libraries (specifically swfupload.js) that you're using, not with Ruffle. Have you tested it on a Flash-enabled browser, such as Pale Moon?

DoomTay commented 1 month ago

I did test it on Basilisk and it works just fine there image

DoomTay commented 1 month ago

Might also be worth pointing out that when clicking the button in Firefox, I'm treated to an overlay that displays a form for uploading the file(s). Not so in Basilisk; there, a file picker opens immediately. image