Commit Graph

12264 Commits

Author SHA1 Message Date
Kamil Jarosz 1624cc9c98 tests: Add avm2/tab_ordering_custom_basic
This is an AVM2 version of avm1/tab_ordering_custom_basic
2024-04-29 21:54:06 +02:00
Kamil Jarosz 566590ac1f tests: Add avm2/tab_ordering_tabbable
This is an AVM2 version of avm1/tab_ordering_tabbable
2024-04-29 21:54:06 +02:00
Kamil Jarosz 39b6c9d096 avm2: Implement InteractiveObject.tabEnabled 2024-04-29 21:54:06 +02:00
Kamil Jarosz 1ecdaea392 avm2: Implement InteractiveObject.tabIndex 2024-04-29 21:54:06 +02:00
Kamil Jarosz 14f7665912 core: Allow setting tabEnabled for AVM2
The field tab_enabled in AVM1 is effectively read-only as
tabEnabled is not a built-in property of objects.
That is not the case in AVM2, where tab_enabled is native.

This patch covers both of these cases by introducing methods:
* tab_enabled,
* set_tab_enabled,
* tab_enabled_avm1,
* tab_enabled_avm2_default.
2024-04-29 21:54:06 +02:00
Kamil Jarosz 036b898122 avm2: Call focus handler in AVM2 buttons
The focus handler should also be called for AVM2 buttons when
the focus is being changed.
2024-04-29 21:54:06 +02:00
Kamil Jarosz 40bc787fd7 tests: Add tab_ordering_custom_i32_vs_u32 test
This test verifies the behavior of i32/u32 discrepancy
in tabIndex in AVM1.
2024-04-29 21:54:06 +02:00
Kamil Jarosz 02091e590d avm1: Move tab_index to InteractiveObject and make it i32
The i32/u32 discrepancy is only a data presentation issue,
as the value is treated as i32 in every case.
2024-04-29 21:54:06 +02:00
Kamil Jarosz 712ab7fce1 tests: Update avm1/tab_ordering_properties
Add a case of a non-editable text field.
2024-04-29 21:54:06 +02:00
Kamil Jarosz 0c03aacb59 tests: Update avm1/tab_ordering_tabbable
Add a case of a dynamic text field with tab enabled.
2024-04-29 21:54:06 +02:00
Kamil Jarosz 86c0a30166 tests: Add textline_inapplicable_properties test
This test verifies the behavior of inapplicable
properties of `TextLine`.
2024-04-29 21:18:08 +02:00
Kamil Jarosz e7eaf2a640 avm2: Override inapplicable properties in TextLine
Some inherited properties of `TextLine` are inapplicable.
They always return the default value and throw an error when set.
2024-04-29 21:18:08 +02:00
sleepycatcoding 7eae6ad90b desktop: Add translatable string for recents menu entry 2024-04-29 20:46:42 +02:00
sleepycatcoding 15a0d18b16 desktop: Filter out invalid and unavailable recent entries 2024-04-29 20:46:42 +02:00
sleepycatcoding c5dade88dd desktop: Separate menu bar into a module 2024-04-29 20:46:42 +02:00
sleepycatcoding c37677e27a desktop: Move about window into dialogs 2024-04-29 20:46:42 +02:00
sleepycatcoding e21f7c1aab desktop: Move VolumeControls into dialogs 2024-04-29 20:46:42 +02:00
sleepycatcoding eb9c95c660 desktop: Separate dialogs into a separate struct 2024-04-29 20:46:42 +02:00
sleepycatcoding 9db308ddf8 desktop: Make recent limit user configurable 2024-04-29 20:46:42 +02:00
sleepycatcoding a33c18b309 desktop: Basic recents menu 2024-04-29 20:46:42 +02:00
sleepycatcoding 7c80091488 frontend-utils: Initial recents reader/writer 2024-04-29 20:46:42 +02:00
dependabot[bot] 3667d1eb74 build(deps): bump the cargo-minor group with 2 updates
Bumps the cargo-minor group with 2 updates: [flate2](https://github.com/rust-lang/flate2-rs) and [serde](https://github.com/serde-rs/serde).


Updates `flate2` from 1.0.28 to 1.0.29
- [Release notes](https://github.com/rust-lang/flate2-rs/releases)
- [Commits](https://github.com/rust-lang/flate2-rs/compare/1.0.28...1.0.29)

Updates `serde` from 1.0.198 to 1.0.199
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.198...v1.0.199)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 16:40:00 +02:00
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