Commit Graph

12948 Commits

Author SHA1 Message Date
Aaron Hill d483fc876c extension: Register navigator polyfill script with allFrames: true
This causes the browser to inject our polyfill script into iframes
as well as the main document. This ensures that we can always inject
the fake 'Shockwave Flash' plugin before the page's javascript has
a change to check 'navigator.plugins'

This fixes an inconsistent 'Flash Player Missing' error on
7Road Wartune
2024-08-12 11:00:32 -04:00
dependabot[bot] f51dcf8d55 build(deps): bump the cargo-minor group with 8 updates
Bumps the cargo-minor group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap) | `4.5.13` | `4.5.15` |
| [serde](https://github.com/serde-rs/serde) | `1.0.204` | `1.0.206` |
| [linkme](https://github.com/dtolnay/linkme) | `0.3.27` | `0.3.28` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.122` | `1.0.124` |
| [syn](https://github.com/dtolnay/syn) | `2.0.72` | `2.0.74` |
| [fontdb](https://github.com/RazrFalcon/fontdb) | `0.20.0` | `0.21.0` |
| [async-io](https://github.com/smol-rs/async-io) | `2.3.3` | `2.3.4` |
| [tempfile](https://github.com/Stebalien/tempfile) | `3.11.0` | `3.12.0` |


Updates `clap` from 4.5.13 to 4.5.15
- [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.13...v4.5.15)

Updates `serde` from 1.0.204 to 1.0.206
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.204...v1.0.206)

Updates `linkme` from 0.3.27 to 0.3.28
- [Release notes](https://github.com/dtolnay/linkme/releases)
- [Commits](https://github.com/dtolnay/linkme/compare/0.3.27...0.3.28)

Updates `serde_json` from 1.0.122 to 1.0.124
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.122...v1.0.124)

Updates `syn` from 2.0.72 to 2.0.74
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.72...2.0.74)

Updates `fontdb` from 0.20.0 to 0.21.0
- [Changelog](https://github.com/RazrFalcon/fontdb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/RazrFalcon/fontdb/compare/v0.20.0...v0.21.0)

Updates `async-io` from 2.3.3 to 2.3.4
- [Release notes](https://github.com/smol-rs/async-io/releases)
- [Changelog](https://github.com/smol-rs/async-io/blob/master/CHANGELOG.md)
- [Commits](https://github.com/smol-rs/async-io/compare/v2.3.3...v2.3.4)

Updates `tempfile` from 3.11.0 to 3.12.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/commits)

---
updated-dependencies:
- dependency-name: clap
  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
- dependency-name: linkme
  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: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: fontdb
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
- dependency-name: async-io
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: tempfile
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 16:45:39 +02:00
dependabot[bot] 7f9bf2488f build(deps-dev): bump eslint-plugin-jsdoc from 48.11.0 to 50.0.1 in /web
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 48.11.0 to 50.0.1.
- [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.11.0...v50.0.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-12 16:27:24 +02:00
TÖRÖK Attila f98999c2ac ci: Run nextest with profile "ci", add a test-specific override to allow retries for `avm2/pixelbender_shaderdata` 2024-08-12 04:50:27 +02:00
Crowdin Bot e8a4f2f21f chore: Update translations from Crowdin 2024-08-12 04:03:33 +02:00
Aaron Hill bf55f15913 avm2: Declare 'namespace AS3' and validate bytecode in playerglobals
In order for asc.jar to generate efficient bytecode
(a direct 'callproperty' instead of a dynamic namespace and method
lookup), we need to have 'namespace AS3' in each package where we
do a qualified 'obj.AS3::SomeMethod()' call.

I've adjusted `build_playerglobal` to scan all of our playerglobal
method bodies to ensure that we don't have the bad bytecode.
This uncovered several places where we were missing `namespace AS3'

Before this change, we were creating a new bound method within
all of our prototype methods in `XML/XMLList`, since they used
'self.AS3::SomeXmlMethod()' calls to delegate to the AS3 native
method.

This saves several hundred megabytes on
`https://s1106-r2game-sq.7road.net`, since we no longer create
bound `FunctionObject`s for all of the distinct XML/XMLList objects
that the swf creates.
2024-08-11 17:33:46 -04:00
Adrian Wielgosik 3b93ff941e avm2: Intern XML node name 2024-08-11 09:56:02 +02:00
TÖRÖK Attila c3529afe11 avm1: Math tests: Substitute some trivial expected values and add TODOs about @epsilon 2024-08-11 02:15:36 +02:00
TÖRÖK Attila 3573322c6d avm1: Change expected values in `test_exp` math test to the exact ones returned by FP
And add some tolerance to make it pass with both current stable/beta and nightly rustc.
Thanks for figuring out the precise values, @kjarosh!
2024-08-11 02:15:36 +02:00
TÖRÖK Attila 056501ee75 avm1: Add a way to specify numeric tolerance `@epsilon` when comparing in `test_method!` 2024-08-11 02:15:36 +02:00
Moulins 47030b4f5b core: remove UpdateContext's unused lifetime and reborrow method 2024-08-10 22:53:27 +02:00
Moulins 13cffa4c94 core: appease clippy 2024-08-10 22:53:27 +02:00
Moulins d07437e30e core: store 'gc borrows in UpdateContext, and `&mut UC` in Activation
This leaves the second UpdateContext lifetime unused and the `reborrow`
method useless, but they're kept to avoid an unnecessarily huge diff.
2024-08-10 22:53:27 +02:00
Moulins d116ef82e9 core: rework the way the garbage-collected arena is entered in `Player`
Add `Player::enter_arena(_mut)` methods, giving more ergonomic access to
the GC'd arena by:
- handling the RefCell borrows for you;
- passing an extra `&(mut) Player` parameter into the closure;
- giving all borrows the same `'gc` lifetime (thanks to strategic `unsafe`).
2024-08-10 22:53:27 +02:00
Moulins 0b3395d21f core: simplify callstack handling in Player
Grab the AVM2 callstack handle before constructing the GC root,
so that we can set it directly instead of modify the GC root once
constructed. This means we can remove an extra GcCell.

Also switch the callstack object from GcCell to GcRefLock.
2024-08-10 22:53:27 +02:00
Adrian Wielgosik 0097aea381 avm2: Make primitive coercions way cheaper 2024-08-10 17:24:31 +02:00
Tom Schuster f202088bd8 avm2: Box E4XNamespace in E4XNodeData 2024-08-10 15:28:28 +02:00
Kamil Jarosz 0cbfa89b27 chore: Add Flathub badge to README 2024-08-10 13:54:09 +02:00
Crowdin Bot a475845022 chore: Update translations from Crowdin 2024-08-10 02:08:16 +02:00
Nathan Adams 637b1ccf4e avm2: Save an alloc when calling Regexp effective_replacement with no replacement patterns 2024-08-10 01:53:01 +02:00
Nathan Adams 0023062c82 avm2: Short circuit the regexp replacement logic if it's a simple (no pattern) string 2024-08-10 01:53:01 +02:00
Nathan Adams ef42bba20c avm2: Don't realloc the same string in Regexp.replace_with_fn, if no match was found 2024-08-10 01:53:01 +02:00
Daniel Jacobs 688c25e85f extension: Don't put responseHeadersUnsupported in config 2024-08-09 16:36:05 -04:00
Daniel Jacobs 52ef345dae extension: Stop "Reset Settings" removing responseHeadersUnsupported 2024-08-09 16:36:05 -04:00
Nathan Adams 23d4a61fbd video: Fix race condition if multiple video backends are downloading OpenH264 at the same time
Co-authored-by: TÖRÖK Attila <torokati44@gmail.com>
2024-08-09 18:39:47 +02:00
Nathan Adams 9b5e33ab7d video: Log the hash mismatch when openh264 is wrong
Co-authored-by: TÖRÖK Attila <torokati44@gmail.com>
2024-08-09 18:39:47 +02:00
Crowdin Bot b9054c4f45 chore: Update translations from Crowdin 2024-08-09 00:01:46 +02:00
Daniel Jacobs 8481d9925f extension: Reword SWF takeover option 2024-08-07 19:47:09 -04:00
Daniel Jacobs d723988237 extension: Don't explicitly check swfTakeover option initially 2024-08-07 19:47:09 -04:00
Daniel Jacobs 6096ac2a5f extension: Don't enable SWF takeover if Ruffle is disabled when toggled 2024-08-07 19:47:09 -04:00
Daniel Jacobs aa647317e7 extension: Hide toggle for SWF redirect on browsers without support 2024-08-07 19:47:09 -04:00
Daniel Jacobs 125d0a84e4 extension: Mention switching to the browser namespace as a TODO 2024-08-07 19:47:09 -04:00
Daniel Jacobs b4eb73ba6c extension: Use more accurate regex for SWF/SPL URLs 2024-08-07 19:47:09 -04:00
Daniel Jacobs eb22fe2151 extension: Allow manually enabling or disabling SWF takeover 2024-08-07 19:47:09 -04:00
Daniel Jacobs 38965e65e4 extension: Don't add dynamic rules where responseHeaders rules ignored 2024-08-07 19:47:09 -04:00
Daniel Jacobs 3a47f8a20f extension: Allow this to work on Firefox when its eventually supported 2024-08-07 19:47:09 -04:00
Daniel Jacobs 10edaf2c48 extension: Add ability to download SWF to local player page 2024-08-07 19:47:09 -04:00
Daniel Jacobs 724442997b extension: Re-enable SWF takeover using declarativeNetRequest 2024-08-07 19:47:09 -04:00
Nathan Adams 1fc367079e ci: Fix desktop path for wix installer 2024-08-08 01:02:20 +02:00
Lord-McSweeney 863e621bbb avm2: Make ScriptObjectData.vtable non-Optional 2024-08-07 14:57:17 -07:00
Lord-McSweeney fa4df53831 avm2: Change the alignment assertion to use `ScriptObjectData` instead of `RefLock<ScriptObjectData>` 2024-08-07 11:58:05 -07:00
Lord-McSweeney 732775d08a avm2: Use interior mutability in `ScriptObjectData` 2024-08-07 11:58:05 -07:00
Tom Schuster c94004271b desktop: Enable LZMA feature by default 2024-08-07 20:08:42 +02:00
Lord-McSweeney 117df6e3c2 avm2: Resolve review notes in `enum_trait_object` macro 2024-08-06 19:25:03 -07:00
Lord-McSweeney 53347ed088 core: Remove unnecessary defined `#[no_dynamic]` `proc_macro_attribute` 2024-08-06 19:25:03 -07:00
Lord-McSweeney c98c173c6b chore: Run `cargo fix` 2024-08-06 19:25:03 -07:00
Lord-McSweeney 806da319c0 avm2: Ensure alignment between *ObjectData and ScriptObjectData is the same 2024-08-06 19:25:03 -07:00
Lord-McSweeney 9c399da94a avm2: Add a `#[no_dynamic]` attribute to specify functions in `enum_trait_object` that don't need dynamic dispatch 2024-08-06 19:25:03 -07:00
Lord-McSweeney e58a82289a avm2: Remove some dynamic-dispatch TObject logic (both on Object variants and defined on TObject)
This results in better codegen for `Object::get_slot` and `set_slot`
2024-08-06 19:25:03 -07:00
Nathan Adams 3357904d1e desktop: Change mime type of bundle + change text of ruffle feature description 2024-08-06 22:46:23 +02:00