Commit Graph

8572 Commits

Author SHA1 Message Date
CUB3D 71a58db8a4 test: Add test for unload and variable scopes 2023-03-01 22:36:39 +01:00
CUB3D 03f5fd8154 test: Add test for string paths aliasing 2023-03-01 22:36:39 +01:00
CUB3D 87947976d3 test: Add test for basic string paths 2023-03-01 22:36:39 +01:00
CUB3D b43510535f test: Add button v5/v6 tests 2023-03-01 22:36:39 +01:00
CUB3D 3d3f279160 avm1: In swfv5, resolving a non MovieClip path, should resolve to the first MovieClip parent 2023-03-01 22:36:39 +01:00
CUB3D 611c86df94 avm1: Temporary fix, block events when clips are removed 2023-03-01 22:36:39 +01:00
CUB3D a282d06ab7 avm1: Locals on removed DisplayObjects can't be accessed, should be undef 2023-03-01 22:36:39 +01:00
CUB3D a67976f601 avm1: Fix add2 coerce 2023-03-01 22:36:39 +01:00
CUB3D 1fdd8f1a82 avm1: Timers attached to clips don't fire when the clip is removed 2023-03-01 22:36:39 +01:00
CUB3D 9b850e7615 avm1: Correctly invalidate cache on clip removal 2023-03-01 22:36:39 +01:00
CUB3D cb3d9f99a7 avm1: Cache MovieClips in Value::MovieClip, this is required to correctly handle changing DO._name and for perf 2023-03-01 22:36:39 +01:00
CUB3D 6a9e13814a avm1: Don't convert SuperObjects to Value::MovieClip, or you break classes 2023-03-01 22:36:39 +01:00
CUB3D de86a51edd avm1: AS-instantiated clips with unload handlers need to have delayed removal, fixes mochi preloader 2023-03-01 22:36:39 +01:00
CUB3D f3cb1fc79e avm1: Treat MovieClips as strings in add2 2023-03-01 22:36:39 +01:00
CUB3D e6d3a99d80 avm1: MovieClips are indirectly referenced by string paths 2023-03-01 22:36:39 +01:00
Nathan Adams 6a8846ef19 chore: Appease clippy 2023-03-01 21:25:19 +01:00
Nathan Adams e33fdfb765 core: Add test to assert that *.foo.example.com matches foo.example.com 2023-03-01 21:25:19 +01:00
Nathan Adams 07ac03eb6c core: Add names to compatibility rulesets 2023-03-01 21:25:19 +01:00
Nathan Adams ca9749d1f2 core: Change from regex to custom domain matching in swf compatibility rewrites 2023-03-01 21:25:19 +01:00
Nathan Adams b10d4876d3 web: Add compatibilityRules config option to disable all compatibility rules 2023-03-01 21:25:19 +01:00
Nathan Adams ef42a391f5 core: Add default_compatibility_rules as a feature, and document when we add rules 2023-03-01 21:25:19 +01:00
Nathan Adams 1aedb7ff8d core: Add CompatibilityRules struct for on-the-fly replacements for compatibility. Initially konggames -> kongregate.com rules 2023-03-01 21:25:19 +01:00
Aaron Hill f282331204 core: Call `overwrite_cpu_pixels_from_gpu` just before we draw
If we bail out early, we want to preserve the current GPU -> CPU
sync.
2023-03-01 12:30:22 -06:00
Aaron Hill 076016b1be avm2: Get XMLList 'filter' syntax working
This requires the ability to do a limited 'set_property',
as well as `get_enumerant_value`.

To prevent modification of XMLLists derived from queries,
I've introduced a `target` field on `XMLList`. This is
`None` for lists created with `new XMLList()`, and `Some`
when the list was derived from a query on an existing `XML`
/`XMLList`. We only allow `set_property` when `target` is `None`:
this is enough for filtering to work, and prevents silent incorrect
execution when trying to modify an existing node.
2023-03-01 12:04:02 -06:00
Aaron Hill 44a301e16a avm2: Add `attribute` and `attributes` methods to `XML/XMLList` 2023-03-01 10:51:21 -06:00
Aaron Hill 1099218fdd avm2: Stub Mouse.supportsCursor and Mouse.supportsNativeCursor
Since these are static properties, Ruffle previously (correctly)
returned `undefined` for SWFs that tried to access them, intead
of throwing an error.
2023-03-01 09:30:10 -06:00
Aaron Hill 78c9de7b8f avm2: Fix constructing empty XMLList
A default empty text node should only be created for XML.
2023-03-01 15:57:34 +01:00
Daniel Jacobs c891a82440 web: Don't focus inside setTimeout on iOS and don't fire unneeded events 2023-03-01 08:15:58 +02:00
Daniel Jacobs 584cb4c1cf web/ui: Open the virtual keyboard when clicking an editable EditText 2023-03-01 08:15:58 +02:00
Daniel Jacobs b9b1fa4f8d web: Add context menu item to show virtual keyboard
Co-authored-by: n42k <pedro@amaro.sh>
2023-03-01 08:15:58 +02:00
Aaron Hill 61a664fec6 core: Produce an error when BitmapData.draw call is unsupported 2023-02-28 18:20:53 -06:00
EmperorBale 93ce5e2328 tests: Extend loader_applicationDomain test 2023-02-28 13:04:24 -08:00
EmperorBale 9338f1daa8 avm2: Fix default domain when loading movieclip 2023-02-28 13:04:24 -08:00
Marty_SVK 9c844678b5 avm2: Stub TextField.condenseWhite 2023-02-28 21:25:01 +01:00
relrelb 203788c1c8 core: Move `F64Extension` to `avm1`
Since it's only used there. Also rename the trait to `Clamp`.
2023-02-28 19:22:37 +02:00
relrelb fe23eb0553 core: Introduce and use `F64Extension::clamp_to_i32`
Previously there were multiple implementations scattered across the
codebase. Unify them to a single place, in a more "Rusty" way (now
it's called via dot notation, rather than as a free function).
2023-02-28 19:22:37 +02:00
relrelb b3fd1a47c6 core: Require `SwfMovie::url` 2023-02-28 19:05:20 +02:00
relrelb e6f09d5adb web: Use `#[wasm_bindgen(raw_module)]`
Since relative paths in `#[wasm_bindgen(module)]` aren't supported.
Also omit the file extension as it's not required.
2023-02-28 18:50:36 +02:00
relrelb 8ff8b32f7b web: Use `js_sys::Error`
Instead of declaring it ourselves.
2023-02-28 18:50:36 +02:00
Lord-McSweeney c01edc90bc
avm2: Stub `flash.text.StyleSheet` (#9747) 2023-02-28 16:35:47 +00:00
TÖRÖK Attila 57dad40f18 chore: Run cargo update 2023-02-28 18:14:22 +02:00
TÖRÖK Attila 262c456da2 chore: Update h263-rs to newest master, add some debug asserts 2023-02-28 18:14:22 +02:00
relrelb cf0c32bd70 core: Remove some unused `RenderContext` fields 2023-02-28 17:48:57 +02:00
Nathan Adams 91a54f9e41 avm2: Use flags.set(foo) instead of |= foo 2023-02-28 16:25:12 +01:00
Nathan Adams 545193b098 swf: Deduplicate GradientFilter again 2023-02-28 16:25:12 +01:00
Nathan Adams 07d441a750 core: Don't impl FilterAvm2Ext for individual Filter structs 2023-02-28 16:25:12 +01:00
Nathan Adams f79015e201 render: Use swf Filter types where possible. Gradient types had to be split into duplicate classes to allow for different trait impls based on which gradient filter type it is. 2023-02-28 16:25:12 +01:00
Nathan Adams a7edeb4638 tests: Add avm2/gradient_glow_filter test for swf->core->avm2 and avm2->core->avm2 testing 2023-02-28 16:25:12 +01:00
Nathan Adams d869a6e0ab tests: Add avm2/gradient_bevel_filter test for swf->core->avm2 and avm2->core->avm2 testing 2023-02-28 16:25:12 +01:00
Nathan Adams 0a40a2d43f tests: Add avm2/glow_filter test for swf->core->avm2 and avm2->core->avm2 testing 2023-02-28 16:25:12 +01:00