Lord-McSweeney
b0443b3b5f
avm2: Simplify uses of `GcCell<'gc, Class<'gc>>`
2024-04-27 08:29:10 -07:00
sleepycatcoding
6203f99dd7
frontend-utils: Add integer parse methods
2024-04-27 01:04:40 +02:00
sleepycatcoding
de003e12e7
frontend-utils: Add warning capable casting methods
2024-04-27 01:04:40 +02:00
sleepycatcoding
c95d02339e
frontend-utils: Drop 'static bound from push_key
2024-04-27 01:04:40 +02:00
TÖRÖK Attila
4df57bb122
ci: Drop the `mathiasvr/command-output` action from the `release_amo` workflow
2024-04-26 20:41:23 +02:00
Adrian Wielgosik
868ab45c98
avm2: Add Stage.softKeyboardRect
2024-04-24 20:33:13 +02:00
Kamil Jarosz
f30c04e8b4
frontend-utils: Get rid of deadlocks in AsyncExecutor
...
3d04971a
was the first approach to eliminating deadlocks caused by
waking a task from another one. A task may also try to wake itself,
and that case was unfortunately not covered.
This patch rewrites the AsyncExecutor to use an async
channel for queuing tasks instead of a flag.
Using a flag required holding a lock for a task which was
problematic when a task needed to be awoken.
A flag also required doing a full search through tasks each poll,
which could be ineffective.
2024-04-24 01:02:23 +02:00
Kamil Jarosz
31d8d98a10
tests: Add focusrect_mouse_swf8 test
...
This test verifies the behavior of focus highlight when
mouse is moved and mouse buttons are clicked for SWF8.
2024-04-24 00:49:37 +02:00
Kamil Jarosz
a594d8d9ac
tests: Add focusrect_mouse_swf9 test
...
This test verifies the behavior of focus highlight when
mouse is moved and mouse buttons are clicked for SWF9.
2024-04-24 00:49:37 +02:00
Kamil Jarosz
953a741943
core: Update focus highlight reset logic for SWF9+
...
SWF versions 9 onwards reset the highlight only on
left mouse button down, whereas older versions also
reset it on other mouse events.
2024-04-24 00:49:37 +02:00
TÖRÖK Attila
4ec30928ab
chore: Run `cargo update`, excluding `tracy-client` duplication
2024-04-24 00:27:42 +02:00
dependabot[bot]
09d17e722b
build(deps): bump zip from 0.6.6 to 1.1.1
...
Bumps [zip](https://github.com/Pr0methean/zip ) from 0.6.6 to 1.1.1.
- [Changelog](https://github.com/Pr0methean/zip/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Pr0methean/zip/commits )
---
updated-dependencies:
- dependency-name: zip
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-04-23 23:47:26 +02:00
Kamil Jarosz
9bc5735d0d
tests: Add stage_properties2 test
2024-04-23 23:13:02 +02:00
Kamil Jarosz
83d5d18a20
avm2: Add missing overrides to Stage
...
Stage overrides some properties from its super classes.
Some of them are currently identical in Ruffle,
but in FP they are used for e.g. security checks.
2024-04-23 23:13:02 +02:00
Kamil Jarosz
f01cb99d1a
avm2: Remove unnecessary imports in AS
2024-04-23 23:13:02 +02:00
Kamil Jarosz
ccd2922973
avm2: Stub DisplayObjectContainer.textSnapshot
2024-04-23 23:13:02 +02:00
Kamil Jarosz
19cc8e5873
avm2: Add a stub for flash.text.TextSnapshot
2024-04-23 23:13:02 +02:00
TÖRÖK Attila
c288c7b710
chore: Bump locked `loom`, `generator`, `async-process`, and `async-signal` versions
...
This lets us drop the `windows` `v0.48.0`, `async-lock` `v2.8.0`,
and `event-listener` `v2.5.3` duplicated versions.
2024-04-23 20:14:13 +02:00
Adrian Wielgosik
09e932163b
xml: Add TODO comment in deepCopy()
2024-04-22 22:08:40 +02:00
Adrian Wielgosik
43f27b80ce
avm2: Also conditionally set IS_QNAME in 'new QName()'
2024-04-22 22:08:40 +02:00
Adrian Wielgosik
464ccb6eb6
avm2: Update comment for QName struct
2024-04-22 22:08:40 +02:00
Adrian Wielgosik
fd281cc715
avm2: Add IS_QNAME flag to Multiname, improve XML name matching
2024-04-22 22:08:40 +02:00
dependabot[bot]
d7b3a500d7
build(deps): bump the npm-minor group in /web with 11 updates
...
Bumps the npm-minor group in /web with 11 updates:
| Package | From | To |
| --- | --- | --- |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin ) | `7.7.0` | `7.7.1` |
| [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) | `7.7.0` | `7.7.1` |
| [@wdio/cli](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-cli ) | `8.36.0` | `8.36.1` |
| [@wdio/local-runner](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-local-runner ) | `8.36.0` | `8.36.1` |
| [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-mocha-framework ) | `8.36.0` | `8.36.1` |
| [@wdio/spec-reporter](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-spec-reporter ) | `8.36.0` | `8.36.1` |
| [@wdio/static-server-service](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/wdio-static-server-service ) | `8.36.0` | `8.36.1` |
| [chromedriver](https://github.com/giggio/node-chromedriver ) | `123.0.3` | `123.0.4` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react ) | `18.2.78` | `18.2.79` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) | `5.2.8` | `5.2.10` |
| [webdriverio](https://github.com/webdriverio/webdriverio/tree/HEAD/packages/webdriverio ) | `8.36.0` | `8.36.1` |
Updates `@typescript-eslint/eslint-plugin` from 7.7.0 to 7.7.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.7.1/packages/eslint-plugin )
Updates `@typescript-eslint/parser` from 7.7.0 to 7.7.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.7.1/packages/parser )
Updates `@wdio/cli` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/wdio-cli )
Updates `@wdio/local-runner` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/wdio-local-runner )
Updates `@wdio/mocha-framework` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/wdio-mocha-framework )
Updates `@wdio/spec-reporter` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/wdio-spec-reporter )
Updates `@wdio/static-server-service` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/wdio-static-server-service )
Updates `chromedriver` from 123.0.3 to 123.0.4
- [Commits](https://github.com/giggio/node-chromedriver/compare/123.0.3...123.0.4 )
Updates `@types/react` from 18.2.78 to 18.2.79
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react )
Updates `vite` from 5.2.8 to 5.2.10
- [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.10/packages/vite )
Updates `webdriverio` from 8.36.0 to 8.36.1
- [Release notes](https://github.com/webdriverio/webdriverio/releases )
- [Changelog](https://github.com/webdriverio/webdriverio/blob/v8.36.1/CHANGELOG.md )
- [Commits](https://github.com/webdriverio/webdriverio/commits/v8.36.1/packages/webdriverio )
---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@typescript-eslint/parser"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@wdio/cli"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@wdio/local-runner"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@wdio/mocha-framework"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@wdio/spec-reporter"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@wdio/static-server-service"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: chromedriver
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: "@types/react"
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: vite
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: webdriverio
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 21:45:09 +02:00
dependabot[bot]
c6bfaf8fae
build(deps): bump the cargo-minor group with 4 updates
...
Bumps the cargo-minor group with 4 updates: [thiserror](https://github.com/dtolnay/thiserror ), [fluent-templates](https://github.com/XAMPPRocky/fluent-templates ), [toml_edit](https://github.com/toml-rs/toml ) and [reqwest](https://github.com/seanmonstar/reqwest ).
Updates `thiserror` from 1.0.58 to 1.0.59
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.58...1.0.59 )
Updates `fluent-templates` from 0.9.2 to 0.9.4
- [Release notes](https://github.com/XAMPPRocky/fluent-templates/releases )
- [Changelog](https://github.com/XAMPPRocky/fluent-templates/blob/master/CHANGELOG.md )
- [Commits](https://github.com/XAMPPRocky/fluent-templates/compare/fluent-templates-v0.9.2...fluent-templates-v0.9.4 )
Updates `toml_edit` from 0.22.9 to 0.22.12
- [Commits](https://github.com/toml-rs/toml/compare/v0.22.9...v0.22.12 )
Updates `reqwest` from 0.12.3 to 0.12.4
- [Release notes](https://github.com/seanmonstar/reqwest/releases )
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.12.3...v0.12.4 )
---
updated-dependencies:
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: fluent-templates
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: toml_edit
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: reqwest
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 20:33:27 +02:00
sleepycatcoding
86b35145ec
frontend-utils: Unify warning format strings; add warning enum
...
This also lays the groundwork for translated warnings.
2024-04-22 14:20:50 +03:00
Lord-McSweeney
15c076fe0c
avm2: Remove "namespace not matching" message
...
This was getting spammed after #16069
2024-04-21 16:12:54 -07:00
Kamil Jarosz
1f5d19971b
tests: Add avm1/tab_ordering_events_mouse test
...
This test verifies how the behavior of tabbing is integrated with
the mouse with respect to rollOut/rollOver events.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
f3c9a84058
tests: Add avm1/tab_ordering_events test
...
This test verifies events produced by various interactive objects
while tabbing.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
d4bab66979
tests: Update avm1/selection_handlers test
...
Extend this test to cover rollOut/rollOver events too.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
b9e9a3e1f2
core: Dispatch rollOut/rollOver events on focus change and Tab
...
When focus changes, rollOut/rollOver events should be dispatched.
This includes onRollOut/onRollOver handlers, but also button actions.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
e20341f0a3
core: Skip updating mouse hover when not necessary
...
Since objects may be hovered using Tab, mouse hover update cannot happen
every time, because it would always reset the hover set by Tab.
This is why mouse hover is skipped when the following are true:
1. the mouse has not moved,
2. no mouse button has been pressed,
3. there was a hover,
4. the hovered object did not disappear.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
9987519608
core: Make FocusTracker operate on InteractiveObjects
...
Originally, FocusTracker operated on DisplayObjects. However, in both
AVM1 and AVM2, all objects that are focusable are InteractiveObjects.
Switching FocusTracker to operate on InteractiveObjects simplifies code
in the long run.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
f94a31c5c2
core: Add FocusTracker.get_as_edit_text method
...
This is a utility method which simplifies getting the current focus
as an EditText object, which is being done frequently throughout Ruffle.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
31c9be3a35
core: Ensure all changes made to UpdateContext are applied
...
UpdateContext.mouse_over_object and UpdateContext.mouse_down_object
were treated differently from other properties. Changes made to them
were required to be applied manually after using the context.
However, when reborrowing the context, all changes made to these
properties were dropped, as they were not applied after reborrow.
Applying them after reborrow would be difficult (RAII, concurrency
problems), that's why they were replaced with mutable references.
MouseData struct was introduced to make the code more readable and
adhere to the convention of UpdateContext to contain mutable references
to higher level objects.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
e28712f111
avm1: Use Avm1::run_stack_frame_for_method for focus handlers
...
Using Avm1::run_stack_frame_for_method for calling focus handlers
simplifies code and prevents duplication.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
47758e1fb3
core: Make objects focusable by default
...
Since is_focusable has been moved to InteractiveObject,
it may now return true by default, because non-interactive objects
do not implement this method anymore.
2024-04-22 00:53:20 +02:00
Kamil Jarosz
5173fa4118
core: Move focus-related methods to InteractiveObject
...
Only interactive objects may be focusable, so keeping these methods
in all display objects makes matters more difficult, as they also
has to be implemented for non-interactive objects.
Moving these to InteractiveObject simplifies code in the long run.
2024-04-22 00:53:20 +02:00
Lord-McSweeney
ca4da9e5ee
avm2: Fix regression from classes not being registered in order from the constant pool
2024-04-21 14:27:16 -07:00
Lord-McSweeney
8a4946fa03
avm2: Store Class instead of QName as superclass of Class
2024-04-20 15:23:44 -07:00
turicfr
41bba9d5a5
tests: Update `movieclip_getbounds` test
...
This now enumerates the returned object using `Enumerate2` to match
the order of the stored properties.
2024-04-20 21:58:32 +02:00
turicfr
3f5582ed94
avm1: Correct `getBounds` properties order
...
This affects the order of the properties when enumerating the
returned object (via `Enumerate2` etc.)
2024-04-20 21:58:32 +02:00
Adrian Wielgosik
6ce88f24de
avm2: Add an extra test for sparse arrays
2024-04-20 21:41:33 +02:00
jarca0123
7e349d9190
avm2: Add support for sparse arrays
2024-04-20 21:41:33 +02:00
TÖRÖK Attila
3ca7cc821e
nit: Silence nightly `dead_code` lint
2024-04-20 17:39:54 +02:00
TÖRÖK Attila
7f33dace8e
nit: Silence nightly `clippy::missing_transmute_annotations` lint
2024-04-20 17:39:54 +02:00
TÖRÖK Attila
b8ec3a8089
nit: Silence nightly `clippy::legacy_numeric_constants` lint
2024-04-20 17:39:54 +02:00
Lord-McSweeney
955d03885e
avm2: Remove outdated TODO comments
2024-04-19 15:03:53 -07:00
dependabot[bot]
3250239a02
build(deps): bump rustls from 0.22.3 to 0.22.4
...
Bumps [rustls](https://github.com/rustls/rustls ) from 0.22.3 to 0.22.4.
- [Release notes](https://github.com/rustls/rustls/releases )
- [Changelog](https://github.com/rustls/rustls/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rustls/rustls/compare/v/0.22.3...v/0.22.4 )
---
updated-dependencies:
- dependency-name: rustls
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-04-19 22:05:23 +02:00
Tom Schuster
02148b2891
tests: Test null data with navigateToURL
2024-04-19 18:56:25 +02:00
Tom Schuster
cdf587c5a5
avm2: Fix two bugs that caused wrong query parameters with navigateToURL
2024-04-19 18:56:25 +02:00