Commit Graph

12075 Commits

Author SHA1 Message Date
Kamil Jarosz 6ad4bc4999 render: Add tests for round_to_i32 2024-05-08 22:16:40 +02:00
Kamil Jarosz bc4ed4c5a1 core: Improve performance of round_to_even
This patch improves performance of ecma_conversions::round_to_even():
1. by using f64::round_ties_even(), which has been stable
   since 1.77.0, instead of a custom algorithm; and
2. by removing an unnecessary comparison to i32::MIN,
   as casting a float to an integer automatically saturates
   values smaller than the minimum integer value to the minimum
   value of the integer type.
2024-05-08 22:16:40 +02:00
Kamil Jarosz 8eaf844cdc core: Add tests for round_to_even 2024-05-08 22:16:40 +02:00
Crowdin Bot 4b8bebd74a chore: Update translations from Crowdin 2024-05-08 00:10:37 +02:00
Kamil Jarosz 45dca764c6 tests: Add avm2/focus_remove test
This test verifies the behavior of stage.focus
when the focus is removed from the stage.
2024-05-07 22:56:25 +02:00
Kamil Jarosz b3091ec785 tests: Add avm1/focus_remove test
This test verifies the behavior of Selection.getFocus()
when the focus is removed.
2024-05-07 22:56:25 +02:00
Kamil Jarosz b551d14a59 avm2: Ensure the focus is dropped when it's removed
The logic of dropping the focus when it's removed
applies not only to TextFields but for every InteractiveObject.
This patch ensures that any focus is dropped when its parent is removed.
2024-05-07 22:56:25 +02:00
Kamil Jarosz 428688e7e7 core: Add DisplayObject.on_parent_removed method
This method prevents code duplication performed when overwriting
set_parent to inject some behavior when the parent is removed.
2024-05-07 22:56:25 +02:00
Kamil Jarosz 8d50d1fead core: Move has_focus to InteractiveObject
All the interactive objects had the has_focus flag in their concrete
implementations (even AVM2 button, which did not use it at all).
This patch moves it to InteractiveObject (as a bit flag), making it
easier to manage and use through the has_focus, set_has_focus methods.

Additionally, the operation of setting the current focus to None
when an object was having it was popular enough that it warranted its
own method of drop_focus.
2024-05-07 22:56:25 +02:00
Adrian Wielgosik 19b7cc9025 avm2: Add extra failing tests for button child events 2024-05-07 22:42:52 +02:00
Adrian Wielgosik 120bfa2b30 avm2: Send ADDED_TO_STAGE in SimpleButton at correct time 2024-05-07 22:42:52 +02:00
Kamil Jarosz d852c74b3a tests: Add avm2/filereference_save_and_load test
This test ensures that the error 2037 is thrown
when load is called after save.

It's currently a known failure as Ruffle is not as strict as FP
regarding throwing the error 2037.
2024-05-07 22:26:30 +02:00
Kamil Jarosz 6ea64c92f4 tests: Add avm2/filereference_save_and_browse test
This test verifies how FileReference behaves when a browse (and load)
operations are triggered after save.

Additionally, it marks the commented out code related to reporting
file size as FIXME, because the current implementation reports
the size at all times, instead of only after saving.
2024-05-07 22:26:30 +02:00
Kamil Jarosz 8e6e71b2f7 web: Download the file on FileReference.save
This patch adds support for saving files on web using FileReference.
When writing data, a download is triggered with the default file name.
Currently, there's no dialog that lets the user select save destination.

This patch also ensures that all implementations of FileDialogResult
behave the same way: desktop, web, and tests.
The methods `write` and `refresh` have been merged into one:
`write_and_refresh`, which allows the tests and web implementations
behave the same way as desktop.
2024-05-07 22:26:30 +02:00
dependabot[bot] 79137ec95e build(deps): bump webbrowser from 0.8.15 to 1.0.1
Bumps [webbrowser](https://github.com/amodm/webbrowser-rs) from 0.8.15 to 1.0.1.
- [Release notes](https://github.com/amodm/webbrowser-rs/releases)
- [Changelog](https://github.com/amodm/webbrowser-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/amodm/webbrowser-rs/compare/v0.8.15...v1.0.1)

---
updated-dependencies:
- dependency-name: webbrowser
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-07 22:10:27 +02:00
dependabot[bot] 5bc55f5f3b build(deps): bump the cargo-minor group with 3 updates
Bumps the cargo-minor group with 3 updates: [anyhow](https://github.com/dtolnay/anyhow), [getrandom](https://github.com/rust-random/getrandom) and [zip](https://github.com/zip-rs/zip2).


Updates `anyhow` from 1.0.82 to 1.0.83
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.82...1.0.83)

Updates `getrandom` from 0.2.14 to 0.2.15
- [Changelog](https://github.com/rust-random/getrandom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/getrandom/compare/v0.2.14...v0.2.15)

Updates `zip` from 1.1.4 to 1.2.0
- [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/v1.1.4...v1.2.0)

---
updated-dependencies:
- dependency-name: anyhow
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: getrandom
  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-minor
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-06 23:26:01 +02:00
Kamil Jarosz 0f1c647c1c tests: Add avm2/edittext_selected_text test 2024-05-06 22:17:41 +02:00
Kamil Jarosz eef694e9da tests: Add missing text control codes 2024-05-06 22:17:41 +02:00
Kamil Jarosz e09e199eb3 tests: Fix text control codes mapping 2024-05-06 22:17:41 +02:00
Kamil Jarosz 64df0368fd avm2: Fix TextField.selectedText 2024-05-06 22:17:41 +02:00
_Mads 901a88db29 avm2: Implement selectedText in class flash.text.TextField 2024-05-06 22:17:41 +02:00
Colin 88d8eebce6 docs: Fix scanner command and broken mtasc links 2024-05-06 22:04:25 +02:00
J0sh0nat0r 0c38cc9e28 avm2: share binding skip optimization with `call_method` 2024-05-06 22:02:45 +02:00
Polo 0910df8307
avm2: Implement XML.contains (#16206)
* avm2: XML.contains() implemented

* tests: XMLList known_failure removed

* avm2: XML manual checks removed

* avm2: XMLList.contains() behavior fixed

* avm2: XML contains method moved to xml.rs

* avm2: Empty line removed in xml.rs

* avm2: XML contains args name renamed to value
2024-05-06 17:40:03 +00:00
dependabot[bot] 37cc66fa9b build(deps): bump the cargo-minor group with 2 updates
Bumps the cargo-minor group with 2 updates: [num-traits](https://github.com/rust-num/num-traits) and [zip](https://github.com/zip-rs/zip2).


Updates `num-traits` from 0.2.18 to 0.2.19
- [Changelog](https://github.com/rust-num/num-traits/blob/master/RELEASES.md)
- [Commits](https://github.com/rust-num/num-traits/compare/num-traits-0.2.18...num-traits-0.2.19)

Updates `zip` from 1.1.3 to 1.1.4
- [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/v1.1.3...v1.1.4)

---
updated-dependencies:
- dependency-name: num-traits
  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-05-06 12:30:19 +02:00
dependabot[bot] 793784b029 build(deps-dev): bump the npm-minor group in /web with 2 updates
Bumps the npm-minor group in /web with 2 updates: [stylelint](https://github.com/stylelint/stylelint) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `stylelint` from 16.4.0 to 16.5.0
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/16.4.0...16.5.0)

Updates `vite` from 5.2.10 to 5.2.11
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.2.11/packages/vite)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-minor
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-06 12:07:48 +02:00
Colin 12bc0b7e71
desktop: Skip waiting for resize event after resize fails 2024-05-06 09:44:35 +00:00
TÖRÖK Attila 1e11f5f693 chore: Bump `fluent-*` and `intl-memoizer` versions 2024-05-06 09:20:21 +03:00
Crowdin Bot 60c62f70bb chore: Update translations from Crowdin 2024-05-05 23:39:34 +02:00
Kamil Jarosz 8a9d4f52c4 tests: Add avm2/focus_stage test
This test verifies the behavior of focus and focus highlight
for the stage object.
2024-05-04 17:05:24 -07:00
Kamil Jarosz 42c26f61d1 core: Call focus handlers on every object
Before this patch, focus handlers were called from on_focus_changed,
only for selected objects. It seems that they should be called for
every object by default.
2024-05-04 17:05:24 -07:00
Kamil Jarosz f5a0751557 avm2: Do not highlight Stage on focus
Stage is never highlightable, even if there's a focus on it.
2024-05-04 17:05:24 -07:00
Crowdin Bot d1553a203e chore: Update translations from Crowdin 2024-05-03 23:40:11 +02:00
TÖRÖK Attila 961b0bc551 chore: Do a conservative `cargo update` manually 2024-05-03 08:08:10 +02:00
Daniel Jacobs 181ddd7429 web: Don't append and subsequently remove link just to download files 2024-05-02 18:05:54 -04:00
Crowdin Bot 0551d8bf1f chore: Update translations from Crowdin 2024-05-02 23:41:08 +02:00
Crowdin Bot aa006f0e8f chore: Update translations from Crowdin 2024-05-02 18:07:40 +02:00
Colin d970c32ac0 tests: add avm1/mcl_loadclip_onload_target 2024-05-02 17:37:20 +02:00
dependabot[bot] 2cced7fcc4 build(deps-dev): bump ejs from 3.1.9 to 3.1.10 in /web
Bumps [ejs](https://github.com/mde/ejs) from 3.1.9 to 3.1.10.
- [Release notes](https://github.com/mde/ejs/releases)
- [Commits](https://github.com/mde/ejs/compare/v3.1.9...v3.1.10)

---
updated-dependencies:
- dependency-name: ejs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-02 11:39:06 +02:00
Daniel Jacobs 99eaf7ac2c extension: Add exclusions for Time4Learning and Edgenuity 2024-05-01 15:40:42 -04:00
Crowdin Bot 1e95c6bf66 chore: Update translations from Crowdin 2024-05-01 08:57:45 +02:00
dependabot[bot] 8644fd3c12 build(deps): bump zip from 1.1.2 to 1.1.3 in the cargo-minor group
Bumps the cargo-minor group with 1 update: [zip](https://github.com/zip-rs/zip2).


Updates `zip` from 1.1.2 to 1.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/v1.1.2...v1.1.3)

---
updated-dependencies:
- 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-05-01 08:35:18 +02:00
dependabot[bot] cca6c13710 build(deps): bump libflate from 2.0.0 to 2.1.0 in the cargo-minor group
Bumps the cargo-minor group with 1 update: [libflate](https://github.com/sile/libflate).


Updates `libflate` from 2.0.0 to 2.1.0
- [Release notes](https://github.com/sile/libflate/releases)
- [Commits](https://github.com/sile/libflate/compare/2.0.0...2.1.0)

---
updated-dependencies:
- dependency-name: libflate
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-30 15:03:17 +02:00
Kamil Jarosz e89869660f tests: Add avm1/tab_ordering_custom_m1
This test verifies the behavior of tabIndex = -1.
2024-04-30 14:23:45 +02:00
Kamil Jarosz 8f288b5e97 tests: Update avm2/tab_ordering_properties
Add a case with tabIndex = -1.
2024-04-30 14:23:45 +02:00
Kamil Jarosz 8ee514e62f avm2: Handle setting tabIndex to -1
Despite throwing an error that `tabIndex` cannot be negative,
the value of -1 is allowed, and it means that `tabIndex` is unset.
2024-04-30 14:23:45 +02:00
Kamil Jarosz f40cb6435f code: Unset tabIndex upon assigning -1
The value of -1 for tabIndex always means that it's unset,
even in AVM1 where tabIndex may have a value of `undefined`.
2024-04-30 14:23:45 +02:00
Crowdin Bot 054d0aab29 chore: Update translations from Crowdin 2024-04-30 01:14:39 +02:00
dependabot[bot] 30beb57ec4 build(deps): bump chromedriver from 123.0.4 to 124.0.1 in /web
Bumps [chromedriver](https://github.com/giggio/node-chromedriver) from 123.0.4 to 124.0.1.
- [Commits](https://github.com/giggio/node-chromedriver/compare/123.0.4...124.0.1)

---
updated-dependencies:
- dependency-name: chromedriver
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 23:48:32 +02:00
Kamil Jarosz 71bcaae3fc tests: Add avm2/focusrect test
This test verifies when the highlight is rendered depending on
the value of `focusRect` and `stageFocusRect` in AVM2.
2024-04-29 23:41:40 +02:00