Kamil Jarosz
922e281395
core: Implement keyboard navigation
...
This patch implements keyboard navigation, i.e. changing focus using
arrows when an object is highlighted.
2024-07-15 21:19:21 +02:00
Kamil Jarosz
fdf28ccc6e
core: Refactor tab ordering code
2024-07-15 21:19:21 +02:00
TÖRÖK Attila
af6dc9742d
web/tools: Deduplicate an expression, fixing a formatting lint
2024-07-15 14:30:20 +02:00
dependabot[bot]
f47fa38235
build(deps-dev): bump the npm-minor group in /web with 9 updates
...
Bumps the npm-minor group in /web with 9 updates:
| Package | From | To |
| --- | --- | --- |
| [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js ) | `9.6.0` | `9.7.0` |
| [eslint](https://github.com/eslint/eslint ) | `9.6.0` | `9.7.0` |
| [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc ) | `48.5.2` | `48.7.0` |
| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh ) | `0.4.7` | `0.4.8` |
| [prettier](https://github.com/prettier/prettier ) | `3.3.2` | `3.3.3` |
| [stylelint](https://github.com/stylelint/stylelint ) | `16.6.1` | `16.7.0` |
| [stylelint-prettier](https://github.com/prettier/stylelint-prettier ) | `5.0.0` | `5.0.1` |
| [webpack](https://github.com/webpack/webpack ) | `5.92.1` | `5.93.0` |
| [typedoc](https://github.com/TypeStrong/TypeDoc ) | `0.26.3` | `0.26.4` |
Updates `@eslint/js` from 9.6.0 to 9.7.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/commits/v9.7.0/packages/js )
Updates `eslint` from 9.6.0 to 9.7.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v9.6.0...v9.7.0 )
Updates `eslint-plugin-jsdoc` from 48.5.2 to 48.7.0
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases )
- [Changelog](https://github.com/gajus/eslint-plugin-jsdoc/blob/main/.releaserc )
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v48.5.2...v48.7.0 )
Updates `eslint-plugin-react-refresh` from 0.4.7 to 0.4.8
- [Release notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases )
- [Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md )
- [Commits](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.4.7...v0.4.8 )
Updates `prettier` from 3.3.2 to 3.3.3
- [Release notes](https://github.com/prettier/prettier/releases )
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prettier/prettier/compare/3.3.2...3.3.3 )
Updates `stylelint` from 16.6.1 to 16.7.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.6.1...16.7.0 )
Updates `stylelint-prettier` from 5.0.0 to 5.0.1
- [Changelog](https://github.com/prettier/stylelint-prettier/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prettier/stylelint-prettier/compare/v5.0.0...v5.0.1 )
Updates `webpack` from 5.92.1 to 5.93.0
- [Release notes](https://github.com/webpack/webpack/releases )
- [Commits](https://github.com/webpack/webpack/compare/v5.92.1...v5.93.0 )
Updates `typedoc` from 0.26.3 to 0.26.4
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases )
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md )
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.26.3...v0.26.4 )
---
updated-dependencies:
- dependency-name: "@eslint/js"
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
- dependency-name: eslint
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
- dependency-name: eslint-plugin-jsdoc
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
- dependency-name: eslint-plugin-react-refresh
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: prettier
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: stylelint
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
- dependency-name: stylelint-prettier
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
- dependency-name: webpack
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: npm-minor
- dependency-name: typedoc
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: npm-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 14:30:20 +02:00
dependabot[bot]
f887e96c70
build(deps): bump vergen from 8.3.1 to 8.3.2
...
Bumps [vergen](https://github.com/rustyhorde/vergen ) from 8.3.1 to 8.3.2.
- [Release notes](https://github.com/rustyhorde/vergen/releases )
- [Commits](https://github.com/rustyhorde/vergen/commits )
---
updated-dependencies:
- dependency-name: vergen
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 13:45:46 +02:00
dependabot[bot]
51e868d8ac
build(deps): bump the cargo-minor group with 3 updates
...
Bumps the cargo-minor group with 3 updates: [clap](https://github.com/clap-rs/clap ), [thiserror](https://github.com/dtolnay/thiserror ) and [syn](https://github.com/dtolnay/syn ).
Updates `clap` from 4.5.8 to 4.5.9
- [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.8...v4.5.9 )
Updates `thiserror` from 1.0.61 to 1.0.62
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.61...1.0.62 )
Updates `syn` from 2.0.70 to 2.0.71
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/2.0.70...2.0.71 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
- dependency-name: syn
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: cargo-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 13:26:34 +02:00
dependabot[bot]
a1539624bf
build(deps-dev): bump typescript-eslint in /web
...
Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint ) from 8.0.0-alpha.41 to 8.0.0-alpha.44.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/HEAD/packages/typescript-eslint )
---
updated-dependencies:
- dependency-name: typescript-eslint
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 12:59:58 +02:00
Lord-McSweeney
bed5a2fd86
avm2: Add several AIR classes and version-gate `ImageDecodingPolicy` to SWF13+
...
`NativeProcess`, `NativeProcessStartupInfo`, and `File` classes
2024-07-14 23:25:57 +02:00
Lord-McSweeney
2a38a2caf2
avm2: Fix the globals ordering a little
2024-07-14 23:25:57 +02:00
Kamil Jarosz
5d42a78c47
desktop: Ignore input when the context menu is open
...
This matches FP's behavior: both keyboard and mouse input should be ignored.
2024-07-14 18:29:57 +02:00
Nathan Adams
10c52ce706
ci: Run browser tests in chrome/firefox/edge on CI
2024-07-14 18:04:14 +02:00
Nathan Adams
35fb095aa2
web: Add --browserstack for testing in the cloud
2024-07-14 18:04:14 +02:00
Nathan Adams
e749a6436e
web: Remove broken cors test, it hasn't run for years + technically fails if the whole thing is skipped, apparently
2024-07-14 18:04:14 +02:00
Nathan Adams
160460ef51
web: Replace switchToParentFrame with switchToFrame(null) for ios compatibility
2024-07-14 18:04:14 +02:00
Nathan Adams
d037e5fa2a
web: Add Edge testing, disable autoplay as edge autoplays and that messes up test order of operations slightly
2024-07-14 18:04:14 +02:00
Nathan Adams
ed66cf036c
web: Add firefox testing, + a fix for ExternalConnection on Firefox when called from the test harness
...
Turns out that an object isn't 'instanceof Object' in Firefox, if it was made from another window/process/tab/whatever. In this case, that meant that Ruffle always thought it was null because wasm-bindgen relies on 'instanceof Object'
2024-07-14 18:04:14 +02:00
Nathan Adams
504ac87e8d
web: Start splitting up wdio config to enable different browsers or environments
2024-07-14 18:04:14 +02:00
Nathan Adams
0eaffcc785
web: Clean up wdio config; remove unused stuff, add typing
2024-07-14 18:04:14 +02:00
Lord-McSweeney
ceebf2bf64
avm2: Add `flash.net::NetGroup` class
2024-07-14 17:28:27 +03:00
Adrian Wielgosik
48db0e23c4
core: Fix panic on unsetting self-referential masker
2024-07-12 22:35:07 +02:00
Adrian Wielgosik
261ba7374e
avm2: Correct setting builtins' types on classes
2024-07-12 21:56:37 +02:00
Kamil Jarosz
92a16b5095
tests: Remove an obsolete comment from edittext_html_swf8
2024-07-12 16:30:21 +02:00
Kamil Jarosz
6685c987ac
web: Do not show context menu when right click event is consumed
2024-07-12 15:41:08 +02:00
Kamil Jarosz
0c9f461227
desktop: Dispatch mouse up event on context menu close
2024-07-12 15:41:08 +02:00
Kamil Jarosz
732a31170e
desktop: Do not show context menu when right click event is consumed
2024-07-12 15:41:08 +02:00
Kamil Jarosz
77d89bbf42
tests: Add avm2/mouse_click_events test
2024-07-12 15:41:08 +02:00
Kamil Jarosz
cb958fd2c3
tests: Add possibility to assert on whether the event has been handled
2024-07-12 15:41:08 +02:00
Kamil Jarosz
bd98f72b96
core: Return from handle_event() whether the event has been handled
2024-07-12 15:41:08 +02:00
Kamil Jarosz
7621553a34
avm2: Properly detect whether the event has been handled in event_dispatch_to_avm2
2024-07-12 15:41:08 +02:00
Kamil Jarosz
250bf64a92
avm2: Return whether the event has been handled from dispatch_event
...
Before that, dispatch_event returned whether the event has been
canceled, but the value has never been used.
It's possible to check whether the event has been canceled
by invoking is_cancelled() on the event.
2024-07-12 15:41:08 +02:00
Kamil Jarosz
57e90d947b
avm2: Fire right & middle click events
2024-07-12 15:41:08 +02:00
Kamil Jarosz
c7f1f33843
avm2: Add more specific mouse event constructors
2024-07-12 15:41:08 +02:00
Kamil Jarosz
010310dd1b
avm2: Add an option to simulate event dispatch
2024-07-12 15:41:08 +02:00
Kamil Jarosz
ebfff6aea1
core: Fire clip events on right & middle clicks
2024-07-12 15:41:08 +02:00
Kamil Jarosz
62254d7532
core: Add clip events related to right and middle clicks
2024-07-12 15:41:08 +02:00
Kamil Jarosz
392101611e
core: Add support for pressing multiple mouse buttons
2024-07-12 15:41:08 +02:00
Kamil Jarosz
368a95cf3b
core: Add button parameter to is_mouse_down()
2024-07-12 15:41:08 +02:00
Kamil Jarosz
7a52360965
avm2: Parameterize mouse button in mouse_event()
2024-07-12 15:41:08 +02:00
Kamil Jarosz
d625c0a779
avm2: Add API versions to MouseEvent constants
2024-07-12 15:41:08 +02:00
Kamil Jarosz
4e3b59b360
tests: Add focus_highlight_empty_clip test
2024-07-12 14:44:49 +02:00
Kamil Jarosz
01ad20f8a3
core: Hide focus highlight on invalid and empty bounds
2024-07-12 14:44:49 +02:00
Kamil Jarosz
5d30c9368e
tests: Add focusrect_focuslost test
...
This test verifies the behavior of the current focus and focusrect
when the player loses focus.
2024-07-12 14:20:35 +02:00
Kamil Jarosz
6a9f88d060
tests: Add FocusLost, FocusGained automated events
2024-07-12 14:20:35 +02:00
Kamil Jarosz
5441749e3e
web: Use browser focus events for focus management
...
This patch changes how the player focus is managed.
Before this patch, `instance.has_focus` was unrelated
to the current focus managed by the browser.
When the user clicked anywhere on the window, it was set to `false`,
and when the user clicked on the player, it was set to `true`.
This had two major issues.
1. When the user clicked on the player, `has_focus` was set to `false`,
and then again to `true`. That was problematic when listening
to focus change events.
2. Not using browser's focus makes it harder to integrate with Ruffle,
i.e. tab out of Ruffle.
This patch uses browser's focus management to detect focus
and listen to focus events:
1. on `focusin` – FocusGained event is fired,
2. on `focusout` – FocusLost event is fired, and
3. on `pointerdown` – focus is manually set to the canvas.
The canvas has `tabindex` set to -1 in order to be focusable.
2024-07-12 14:20:35 +02:00
Kamil Jarosz
599352093c
desktop: Pass focus events to the player
2024-07-12 14:20:35 +02:00
Kamil Jarosz
9a88496763
core: Reset focus on player focus loss
...
FP resets focus when the window (or the element on web) loses its focus.
2024-07-12 14:20:35 +02:00
Kamil Jarosz
f71e63379d
tests: Add avm2/edittext_html_condensewhite test
2024-07-12 14:01:24 +02:00
Kamil Jarosz
2a667d713d
tests: Add avm1/edittext_html_condensewhite_swf7 test
2024-07-12 14:01:24 +02:00
Kamil Jarosz
25caca16f1
tests: Add avm1/edittext_html_condensewhite_swf8 test
2024-07-12 14:01:24 +02:00
Kamil Jarosz
6b0bbb85b1
avm2: Implement TextField.condenseWhite
2024-07-12 14:01:24 +02:00