Aaron Hill
c65033aa37
avm2: Ignore errors when setting properties in amf deserializer
...
Flash Player *traces* any errors that occur during setting properties
on the newly-constructed object durting AMf deserialization, and
continues deserializing.
2024-07-03 17:42:02 -04:00
Kamil Jarosz
5aaff966aa
text: Render caret using lines
...
This patch makes the caret be drawn using lines.
This ensures that the width of the caret is always 1px.
Additionally, it improves caret positioning, so that it's closer to FP.
2024-07-03 15:09:31 +02:00
Kamil Jarosz
03518e5d9b
tests: Add FIXME to text/auto_size/return
...
This test produces vastly different results compared to FP.
2024-07-02 23:40:50 +02:00
Kamil Jarosz
bfbb6c6f83
tests: Add visual/edittext/edittext_border_transform test
2024-07-02 23:40:50 +02:00
Kamil Jarosz
5ed2dc1880
tests: Add visual/edittext/edittext_background_basic_scale2 test
...
This test verifies the basic rendering of text field's backgrounds
at zoom 200%.
2024-07-02 23:40:50 +02:00
Kamil Jarosz
289b5a72e6
tests: Add visual/edittext/edittext_background_basic test
...
This test verifies the basic rendering of text field's backgrounds.
2024-07-02 23:40:50 +02:00
Kamil Jarosz
111e081906
tests: Add visual/edittext/edittext_border_filters test
...
This test checks whether text fields with filters are rendered correctly.
2024-07-02 23:40:50 +02:00
Kamil Jarosz
465e7b4f42
tests: Add visual/edittext/edittext_border_basic_scale2 test
...
This test checks whether text field borders are rendered properly
at zoom 200%.
2024-07-02 23:40:50 +02:00
Kamil Jarosz
ec22df0407
tests: Add visual/edittext/edittext_border_basic test
...
This test checks whether text field borders are rendered properly.
2024-07-02 23:40:50 +02:00
Kamil Jarosz
59c0bcf073
core: Improve EditText's border and background rendering
...
This patch removes the drawing used for rendering the border and
the background and renders them using primitives instead.
It provides two methods for drawing the border and the background:
* draw_device_text_box -- when device fonts are used,
* draw_text_box -- when fonts are embedded.
Updated expected images in tests as they are closer to FP now:
* text/auto_size/height,
* text/auto_size/return,
* text/auto_size/width,
* visual/shumway_acid_tests/acid_color_0.
For the test avm2/stage3d_texture it's hard to say whether the current
output is closer to FP or not, as FP renders it with a different scale.
However, I have confirmed that there exists a scale at which FP renders
the text fields exactly as Ruffle after this patch.
2024-07-02 23:40:50 +02:00
Aaron Hill
617cb3330d
avm2: Ignore ClassObject call receiver
...
This allows a class to be used with `callproplex`
2024-07-02 07:18:22 -04:00
Lord-McSweeney
0c4080386d
tests: Add test for reusing Loader
2024-07-02 06:58:37 +03:00
dependabot[bot]
28aa2e65a9
build(deps): bump the cargo-minor group across 1 directory with 7 updates
...
Bumps the cargo-minor group with 7 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap ) | `4.5.7` | `4.5.8` |
| [bitflags](https://github.com/bitflags/bitflags ) | `2.5.0` | `2.6.0` |
| [log](https://github.com/rust-lang/log ) | `0.4.21` | `0.4.22` |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.117` | `1.0.120` |
| [num-bigint](https://github.com/rust-num/num-bigint ) | `0.4.5` | `0.4.6` |
| [id3](https://github.com/polyfloyd/rust-id3 ) | `1.13.1` | `1.14.0` |
| [either](https://github.com/rayon-rs/either ) | `1.12.0` | `1.13.0` |
Updates `clap` from 4.5.7 to 4.5.8
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.7...v4.5.8 )
Updates `bitflags` from 2.5.0 to 2.6.0
- [Release notes](https://github.com/bitflags/bitflags/releases )
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bitflags/bitflags/compare/2.5.0...2.6.0 )
Updates `log` from 0.4.21 to 0.4.22
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.21...0.4.22 )
Updates `serde_json` from 1.0.117 to 1.0.120
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.117...v1.0.120 )
Updates `num-bigint` from 0.4.5 to 0.4.6
- [Changelog](https://github.com/rust-num/num-bigint/blob/master/RELEASES.md )
- [Commits](https://github.com/rust-num/num-bigint/compare/num-bigint-0.4.5...num-bigint-0.4.6 )
Updates `id3` from 1.13.1 to 1.14.0
- [Changelog](https://github.com/polyfloyd/rust-id3/blob/main/CHANGELOG.md )
- [Commits](https://github.com/polyfloyd/rust-id3/compare/v1.13.1...v1.14.0 )
Updates `either` from 1.12.0 to 1.13.0
- [Commits](https://github.com/rayon-rs/either/compare/1.12.0...1.13.0 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: bitflags
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-minor
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: num-bigint
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: id3
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-minor
- dependency-name: either
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 01:04:52 +02:00
TÖRÖK Attila
be65fbaef6
tests: No longer mark the Error1090XmlElementMalformed AVMPlus test as a known failure
2024-06-30 11:17:38 +02:00
Kamil Jarosz
3ff48e9e92
tests: Add avm2/edittext_html_font_size_swf13 test
2024-06-29 22:57:55 +02:00
Kamil Jarosz
156fda9a40
tests: Add avm2/edittext_html_font_size_swf12 test
2024-06-29 22:57:55 +02:00
Kamil Jarosz
fd051c1b34
tests: Add avm2/edittext_html test
2024-06-29 22:57:55 +02:00
Kamil Jarosz
5c41e80d0c
tests: Add avm2/text_run test
2024-06-29 22:57:55 +02:00
Kamil Jarosz
b10e9fbe59
tests: Add focus_highlight_avm2_button_bounds test
2024-06-29 22:42:25 +02:00
Kamil Jarosz
dd9698e8cc
tests: Add edittext_at_point_methods_basic test
...
This test verifies the basic behavior of getCharIndexAtPoint
and getLineIndexAtPoint methods of TextField.
2024-06-29 22:28:16 +02:00
Kamil Jarosz
13c23664cc
tests: Add avm2/edittext_get_line_index_of_char test
...
Verifies the behavior of TextField.getLineIndexOfChar().
2024-06-29 11:29:02 +02:00
Kamil Jarosz
1d41d23332
tests: Add avm2/edittext_line_methods test
...
This test verifies the behavior of line-related methods of TextField:
* getLineLength(),
* getLineOffset(), and
* getLineText().
2024-06-27 22:02:41 +02:00
Kamil Jarosz
4f457da07b
tests: Remove avm2/textfield_getlinetext test
...
The output.txt of this test was invalid,
because it skipped a carriage return after one of the lines.
This has of course something to do with the whole CR/LF/CRLF newline
madness, as the trailing CR formed a CRLF with the "real" newline
character LF, and (I suspect) git replaced it with LF ignoring
CR completely, which badly influenced the current implementation.
This test will be replaced with a proper test when
the implementation is fixed.
2024-06-27 22:02:41 +02:00
Aaron Hill
8bea6d4ef9
avm2: Parse and load DoAbc/DoAbc2 tags during frame execution
...
Parsing and loading the definitions from an DoAbc/DoAbc2 tag
is visible to ActionScript - any definitions will become accessible,
and the script initializer will be run when accessing any of those
definitions.
We now delay the actual parsing/loading traits from DoAbc2 tags.
This is run before we process any SymbolClass tags, and only runs
the first time that we execute a frame.
This also fixes an issue where we would incorrectly produce a
`VerifyError` during preloading when trying to load a superclass
for a `Class` for a tag in a future frame. That frame might require
other class definitions to be populated first (e.g. by a `Loader`
in the first frame).
2024-06-27 21:44:40 +02:00
Kornelius Rohrschneider
76d3cd95a4
tests: Add form loader encoding tests
...
Several form loader encoding tests have been added. They test whether
the form loader uses the correct encoding to decode text files with
different SWF versions and settings.
One test has been marked as known failure as it tests how Flash decodes
invalid UTF-8 characters (when decoding as UTF-8), which is not yet
implemented in Ruffle.
2024-06-26 02:37:44 +02:00
Kornelius Rohrschneider
0b30b7fdda
core: Use HTTP response encoding if existing
...
If System#useCodepage has been set to true, the form loader now uses the
encoding specified in the HTTP response content type field, if existing,
to decode remote text files. chardetng is now (only) used if the HTTP
response doesn't specify any encoding or if the file is local.
2024-06-26 02:37:44 +02:00
Aaron Hill
dc03f541db
avm2: Match Flash behavior for DoAbc/SymbolClass script initializers
...
Flash Player handles SymbolClass tags and eager (non-lazy) DoAbc2 tags in an unusual way:
During the first time that a given frame is executed:
1. All SymbolClass tags are processed in order, triggering ClassObject loading (and the associated
script initializer execution, if it hasn't already been run)
2. All eager (non-lazy) DoAbc/DoAbc2 tags have their *final* script initializer executed.
To implement this, we now cache the needed `Script` and symbol class
data during preloading. The first time we execute a frame, we run
the symbolclass class lookup and assignment, followed by the final
script initializer for each DoAbc2 tag in the frame.
This fixes 'minidash' (and probably other crossbridge games as well).
2024-06-21 16:57:06 +02:00
Kamil Jarosz
f046263002
tests: Add avm2/graphics_draw_triangles test
...
This test verifies the behavior of drawing triangles using Graphics.
However, it will have to be updated when support for winding behavior
gets added.
2024-06-19 23:24:55 +02:00
Nathan Adams
4d12e0e5b4
core: Implement LocalConnection
2024-06-19 21:54:25 +02:00
Kamil Jarosz
0a2528b4f9
tests: Add avm2/graphics_draw_path test
...
This test verifies the behavior of drawing paths using Graphics.
2024-06-19 20:58:33 +02:00
Lord-McSweeney
e8339088a7
tests: Add a test case for setting `dataFormat` after calling `load`
2024-06-18 20:56:50 +02:00
Adrian Wielgosik
cacfb5a6a4
avm2: Fix and unify converting SWF's 1-based to 0-based slot indexing
2024-06-16 16:11:17 -07:00
Tom Schuster
ff322eb19a
avm2: Test more namespace related properties/methods in XMLNode
...
We skip the weird xml: namespace special case for now.
2024-06-15 22:26:57 +02:00
Tom Schuster
4463a69c87
avm2: Implement namespace support for flash.xml
2024-06-15 22:26:57 +02:00
Lord-McSweeney
5ce882da9c
tests: Add a test for calling `newclass` twice on the same `Class`
2024-06-13 23:49:52 +02:00
dependabot[bot]
52404bc3aa
build(deps): bump the cargo-minor group with 6 updates
...
Bumps the cargo-minor group with 6 updates:
| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap ) | `4.5.4` | `4.5.7` |
| [url](https://github.com/servo/rust-url ) | `2.5.0` | `2.5.1` |
| [linkme](https://github.com/dtolnay/linkme ) | `0.3.26` | `0.3.27` |
| [regex](https://github.com/rust-lang/regex ) | `1.10.4` | `1.10.5` |
| [zip](https://github.com/zip-rs/zip2 ) | `2.1.2` | `2.1.3` |
Updates `clap` from 4.5.4 to 4.5.7
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.4...v4.5.7 )
Updates `url` from 2.5.0 to 2.5.1
- [Release notes](https://github.com/servo/rust-url/releases )
- [Commits](https://github.com/servo/rust-url/compare/v2.5.0...v2.5.1 )
Updates `linkme` from 0.3.26 to 0.3.27
- [Release notes](https://github.com/dtolnay/linkme/releases )
- [Commits](https://github.com/dtolnay/linkme/compare/0.3.26...0.3.27 )
Updates `regex` from 1.10.4 to 1.10.5
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.10.4...1.10.5 )
Updates `zip` from 2.1.2 to 2.1.3
- [Release notes](https://github.com/zip-rs/zip2/releases )
- [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md )
- [Commits](https://github.com/zip-rs/zip2/compare/v2.1.2...v2.1.3 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: url
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: linkme
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: quick-xml
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: cargo-minor
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: zip
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-06-13 01:05:26 +02:00
Nathan Adams
c9b111996f
web: Make serde (more-)optional in core
2024-06-13 00:22:33 +02:00
Nathan Adams
7eef31046b
render: Make serde optional
2024-06-13 00:22:33 +02:00
Kamil Jarosz
b7ca9178fd
tests: Add avm1/focus_mouse_rollout test
2024-06-12 23:49:06 +02:00
Kamil Jarosz
439f3f6d62
tests: Add filters/any_blur_scales_with_screen test
...
This test verifies how the blur scales when the screen is scaled.
The test includes all known filters which have a blur,
but some of them (gradient filters) are disabled (made invisible)
because they are not yet fully implemented in Ruffle.
They can be made visible when they are functional
so that this test also covers them.
2024-06-10 18:50:43 +02:00
Kamil Jarosz
88a9c74ee0
swf: Fix blur scaling in filters
...
The blur of 1.0 is invariant, so that it should be preserved when scaling.
Using `blur * scale` also scales the invariant, which is wrong.
Tests show that `(blur - 1) * scale + 1` matches FP's behavior.
2024-06-10 18:50:43 +02:00
Kamil Jarosz
f994c69805
tests: Add edittext_password_copy test
...
This test verifies how FP behaves with regard to
copying or cutting text from a password text field.
2024-06-09 15:38:35 +02:00
Kamil Jarosz
b50db4255c
tests: Add edittext_paste_empty test
...
This test verifies how FP behaves when pasting with an empty clipboard.
2024-06-09 15:38:35 +02:00
Adrian Wielgosik
2955add845
avm2: In Array.sortOn, behave better in presence of nonsense args
2024-06-09 11:11:57 +02:00
Kamil Jarosz
7e0f2ded9d
tests: Add tab_ordering_stage_tab_children_remove_root
...
This test verifies how Stage.tabChildren behaves
when the root movie is removed.
2024-06-08 00:12:53 +02:00
Kamil Jarosz
0e3a8c33e6
tests: Add avm2/tab_ordering_stage_tab_children test
...
This test verifies the behavior of Stage.tabChildren.
2024-06-08 00:12:53 +02:00
Tom Schuster
26f4126840
tests: Improve the test for XML.namespace()
2024-06-06 20:14:40 +02:00
Kamil Jarosz
0c50083c8e
tests: Add avm1/movieclip_create_text_field test
...
This test verifies the behavior of MovieClip.createTextField's params.
2024-06-06 17:08:52 +02:00
Kamil Jarosz
091aa2361f
tests: Add avm2/focus_root_movie test
...
This test verifies the behavior of focus and focusrect
on the root movie clip.
2024-06-05 02:08:13 +02:00
Kamil Jarosz
b0eb0ef1d9
tests: Add avm1/focus_root_movie test
...
This test verifies the behavior of focusing
and tabbing into the root movie.
2024-06-05 02:08:13 +02:00