Commit Graph

6069 Commits

Author SHA1 Message Date
nosamu 2f40f0093a avm1: Unescape + to space 2023-08-22 16:38:24 +02:00
sleepycatcoding 991976e437 avm2: Implement XML pretty printing 2023-08-22 09:57:59 -04:00
sleepycatcoding 34295f25ff chore: Appease beta Clippy 2023-08-22 15:29:01 +02:00
renovate[bot] 2f4c7d2fe3 fix(deps): update rust dependencies 2023-08-21 08:59:07 +02:00
Nathan Adams 89cc0eb31d core: EditText::is_link_at doesn't need to evaluate fonts 2023-08-20 22:31:27 +02:00
Nathan Adams 385c2d7cb0 core: Fix links in TextEdits when scrolled down 2023-08-20 22:31:27 +02:00
Nathan Adams f0d356589a core: Implement avm2 event: links in texts 2023-08-20 22:31:27 +02:00
Nathan Adams 814a900b03 avm1: asfunction goes by the parent, not root 2023-08-20 22:31:27 +02:00
Nathan Adams b8cda975f3 core: Allow clicking EditTexts if we're clicking links 2023-08-20 22:31:27 +02:00
Nathan Adams 658ac2dd9f core: Implement url handling (+asfunction) in textedits 2023-08-20 22:31:27 +02:00
Nathan Adams d32867d992 core: Fix getting correct text position by coordinates, in multiline text 2023-08-20 22:31:27 +02:00
Nathan Adams 506d1918dd core: Add span list to debug window of EditTexts 2023-08-20 22:31:27 +02:00
Kornelius Rohrschneider a50f5cd072 avm1: Remove delay to enter the unloaded state for non-root MovieClips
avm1_unload_movie has been adapted to only enter the unloaded state with
one frame delay if the MovieClip is a root MovieClip. The unloaded state
is now immediately entered for non-root MovieClips.
This fixes the regressions #12254 and #12265 which got introduced
because of this delay.

However, in Flash Player, even non-root MovieClips enter the unloaded
state one frame after the unloadMovie command has been read. Ruffle is
probably replacing a MovieClip differently to Flash, therefore
introducing these regressions when trying to emulate that delay.
Documentation explaining this all has been added to avm1_unload_movie.

Therefore, the test movieclip_library_state_values has been added. It
tests the default state and the unloaded state of a (non-root) child
MovieClip that's loaded from the library. It is marked as known_failure
because Ruffle currently doesn't implement the delay before entering the
unloaded state for non-root MovieClips.
2023-08-19 17:29:00 +02:00
Kornelius Rohrschneider f582ea572c core: Add is_root parameter to MovieClip::replace_with_movie
The method MovieClip::replace_with_movie accepts an
Option<Arc<SwfMovie>>. If no movie is given, an empty stub movie is
generated and used.
Previously, the IS_ROOT flag has been set for the new replaced SwfMovie,
depending on whether a movie was given to the method or not.
However, there are cases where an explicitely given movie should not be
set as a root movie (e.g. if a specific empty stub movie is given to the
method). Conversely, there are also cases where no movie is given, but
the stub movie should still be set as a root movie (e.g. in specific
MovieClip states).
Therefore, an is_root parameter has been added to the method. This
explicit parameter is now used to set the flag for the new replaced
SwfMovie.

All calls of replace_with_movie have been adapted to use the new
parameter correctly.
2023-08-19 17:29:00 +02:00
Kornelius Rohrschneider 0abe0b9386 avm1: Remove completed MovieUnloaders
Previously, a MovieUnloader has been kept in the LoadManager, even after
the movie has been unloaded.
This has been fixed. A remove_loader method has been added to the
LoadManager. It is now called in the avm1_unload_movie method; every
MovieUnloader will be removed after the unloaded state has been entered.

The documentation about loaders has been improved and fixed in multiple
places, clarifying how loaders are removed.
2023-08-19 17:29:00 +02:00
nosamu 050da0740a avm1: Pass flashvars in loadMovie and MovieClipLoader
Fixes #11497
2023-08-19 16:45:01 +02:00
nosamu bd82563bb6 avm2: More lenient SWF version check for invalid frame label behavior
Fixes #11987
2023-08-19 16:10:40 +02:00
Lord-McSweeney 89b9bc3827 core/avm2: Support accessing applicationDomain on a LoaderInfo before load starts/finishes; also improve Loader.unload stub. 2023-08-19 00:24:03 +02:00
renovate[bot] 1f4bfcf10d fix(deps): update rust dependencies 2023-08-18 23:32:15 +02:00
Nathan Adams a6aa72351f avm2: Add a Function() call handler 2023-08-18 22:13:46 +02:00
Nathan Adams 7df861f212 avm2: Disallow 'new Function(args)' 2023-08-18 22:13:46 +02:00
Nathan Adams f2233855c7 avm2: Throw proper error on 'x is SomethingThatIsntAClass' 2023-08-18 22:13:46 +02:00
Nathan Adams 46381d181a avm2: Use correct error when trying to construct something invalid 2023-08-18 22:13:46 +02:00
Nathan Adams 8bbf8f4ea1 avm2: Use correct error in toString with invalid radix 2023-08-18 22:13:46 +02:00
Nathan Adams c9c2e213bb avm2: Use correct error in toPrecision 2023-08-18 22:13:46 +02:00
sleepycatcoding 2f98da44fb avm2: String.indexOf returns -1 when passed in undefined 2023-08-18 20:41:41 +02:00
sleepycatcoding cde49de1fb avm2: Remove undefined specific behavior in String.split 2023-08-18 20:41:41 +02:00
sleepycatcoding a44546ab1c avm2: Do not ignore nulls in String.fromCharCode 2023-08-18 20:41:41 +02:00
sleepycatcoding 7316f51cb1 avm2: String.toString defaults to "" 2023-08-18 20:41:41 +02:00
sleepycatcoding b835cc8091 avm2: Boolean.valueOf and Boolean.toString default to false
Makes tests `e15_6_3_1`, `e15_6_3_1_3`, `e15_6_4`, `e15_6_4__1` and `ecall_1` pass.
2023-08-18 16:07:15 +02:00
nosamu f3feabb59a avm2: nextScene() and prevScene() should fall back to current scene
Fixes #12797
2023-08-18 00:33:32 +02:00
Nathan Adams f00671e9cc core: Fix rendering masks + scrollRects when cacheAsBitmap 2023-08-16 16:34:24 +02:00
sleepycatcoding f4d42ac75a chore: fmt 2023-08-16 16:11:57 +02:00
sleepycatcoding e1bc8ed269 core: Replace usages of MutationContext with Mutation 2023-08-16 16:11:57 +02:00
renovate[bot] 93f08d7738 chore(deps): lock file maintenance rust dependencies 2023-08-14 23:58:45 +02:00
Tom Schuster d93c449199 avm2: Throw TypeError on unbound namespace prefix 2023-08-14 19:58:21 +02:00
Tom Schuster 7639d045ad avm2: Limited XML namespace support 2023-08-14 19:58:21 +02:00
Nathan Adams b274d53c6e avm1: Hook up TextField.filters 2023-08-13 14:40:03 +02:00
Nathan Adams b2c334b815 avm1: Hook up Button.cacheAsBitmap 2023-08-13 14:40:03 +02:00
Nathan Adams 5e1a30cf4a core: Fix avm2 button bounding box when using scroll rects 2023-08-13 14:14:34 +02:00
Nathan Adams 3117469e20 core: simple_content_to_string and xml_to_string are now infallible 2023-08-12 20:15:21 +02:00
Nathan Adams db7c6dec00 core: Implement XML.toString for comments and processing instructions 2023-08-12 20:15:21 +02:00
Nathan Adams af1cb4ebd9 core: xml_to_xml_string is now infallible 2023-08-12 20:15:21 +02:00
Nathan Adams 5d9c73cbb1 core: to_xml_string is now infallible 2023-08-12 20:15:21 +02:00
Nathan Adams 135d8c08bf avm2: to_xml_string_inner no longer needs to return a Result<(), Error> 2023-08-12 20:15:21 +02:00
Nathan Adams bf7c17737b avm2: Trim the start of processing instruction values 2023-08-12 20:15:21 +02:00
Nathan Adams 90b3fa4c63 avm2: Implement to_xml_string_inner for procesing instructions 2023-08-12 20:15:21 +02:00
Nathan Adams 247d61675c avm2: Parse name and value out of XML Processing Instructions 2023-08-12 20:15:21 +02:00
Nathan Adams 8e23c7807e avm2: Implement XMLList.processingInstructions() 2023-08-12 20:15:21 +02:00
Nathan Adams 80981e80e6 avm2: Implement XML.processingInstructions() 2023-08-12 20:15:21 +02:00