Commit Graph

13090 Commits

Author SHA1 Message Date
Kamil Jarosz e9cd9a2864 desktop: Use trash can emoji on remove buttons
This replaces the letter x with the trash can emoji,
which looks nicer and has clearer semantics.
2024-09-19 08:18:24 -07:00
TÖRÖK Attila 309d600c6d desktop: Bump `egui` to latest `master`, set theme instead of visuals 2024-09-19 13:05:30 +02:00
Crowdin Bot 0729e79659 chore: Update translations from Crowdin 2024-09-18 23:17:21 +02:00
Aaron Hill bd27a6bbd6 avm2: Call set_expose_content for swf loaded through Loader
This exposes non-null 'content' and 'url' fields to the SWF
at the proper time
2024-09-18 14:49:46 -04:00
Raphael Gaschignard 90adab7015 avm2: Fix String.replace crash when regex is used in replacement
(close #17899)
2024-09-18 16:26:14 +02:00
Kamil Jarosz bade6dd50c chore: Fix compilation warnings on non-Linux 2024-09-18 12:00:14 +02:00
TÖRÖK Attila e468047ec5 chore: Make web-sys a workspace-level dependency
Thereby deduplicating the version number of it.
2024-09-18 11:28:27 +02:00
TÖRÖK Attila 8ad1c1069c video/external: Make OpenH264 support optional by adding the `openh264` feature
And enable it in desktop and tests.
2024-09-18 11:28:27 +02:00
TÖRÖK Attila 0e1d500654 video/external: Move OpenH264 related stuff into the `openh264` decoder module 2024-09-18 11:28:27 +02:00
Crowdin Bot 35f1fda4b2 chore: Update translations from Crowdin 2024-09-18 00:36:55 +02:00
Mads Marquart 0f2b66a808 desktop: Move cpal audio backend to frontend-utils 2024-09-18 00:21:29 +02:00
Lord-McSweeney ac3f8991ea core: Remove unused MovieClipStatic.processed_bytecode_tags_pos 2024-09-17 10:51:41 -07:00
Crowdin Bot 9651a19387 chore: Update translations from Crowdin 2024-09-17 12:59:48 +02:00
dependabot[bot] d85e420125 build(deps-dev): bump the npm-minor group in /web with 4 updates
Bumps the npm-minor group in /web with 4 updates: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint), [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) and [@types/jsonwebtoken](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jsonwebtoken).


Updates `typescript-eslint` from 8.5.0 to 8.6.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.6.0/packages/typescript-eslint)

Updates `@types/react` from 18.3.5 to 18.3.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

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

Updates `@types/jsonwebtoken` from 9.0.6 to 9.0.7
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jsonwebtoken)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  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: "@types/jsonwebtoken"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-17 07:23:02 +02:00
Lord-McSweeney 4fd9dc45c5 chore: appease clippy 2024-09-16 16:33:49 -07:00
Lord-McSweeney ae956eb10f avm2: Avoid unnecessary Gc allocation for `PropertyClass::Name` 2024-09-16 16:33:49 -07:00
Lord-McSweeney ed9b250d0a avm2: Correctly differentiate between Any and null Multiname 2024-09-16 16:33:49 -07:00
Lord-McSweeney 6a9f4b665a avm2: Add warning comment to `handle_input_multiname` 2024-09-16 16:33:49 -07:00
dependabot[bot] a74d177a4a build(deps): bump webbrowser in the cargo-minor group
Bumps the cargo-minor group with 1 update: [webbrowser](https://github.com/amodm/webbrowser-rs).


Updates `webbrowser` from 1.0.1 to 1.0.2
- [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/v1.0.1...v1.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 23:20:03 +02:00
Adrian Wielgosik 4ab0910bff core: Optimize BMD.fillRect() 2024-09-16 21:06:43 +02:00
Mads Marquart a3d58f0815 chore: Make macOS specific things also work on iOS 2024-09-16 21:03:57 +02:00
Kamil Jarosz 673f28152e desktop: Migrate old log files from config directory
Ruffle used to save log files in config directory.
This patch makes Ruffle migrate those files at startup.
2024-09-16 18:13:06 +02:00
Kamil Jarosz e2e826259d desktop: Do not store logs in config directory
Logs are non-essential and can be removed, contrary to config files.
This patch changes the log directory from config dir to cache dir.
2024-09-16 18:13:06 +02:00
Kamil Jarosz b59ee2f91b desktop: Remove Utility Freedesktop category
As per the documentation [1,2], Ruffle hardly fits in this category.

[1] https://specifications.freedesktop.org/menu-spec/latest/category-registry.html#main-category-registry
[2] https://specifications.freedesktop.org/menu-spec/latest/additional-category-registry.html
2024-09-16 12:01:35 +02:00
dependabot[bot] ba9bd3a90e build(deps-dev): bump the npm-minor group in /web with 7 updates
Bumps the npm-minor group in /web with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) | `50.2.2` | `50.2.3` |
| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.4.11` | `0.4.12` |
| [tsx](https://github.com/privatenumber/tsx) | `4.19.0` | `4.19.1` |
| [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha) | `10.0.7` | `10.0.8` |
| [postcss](https://github.com/postcss/postcss) | `8.4.45` | `8.4.47` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `5.4.3` | `5.4.5` |
| [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) | `0.0.270` | `0.0.271` |


Updates `eslint-plugin-jsdoc` from 50.2.2 to 50.2.3
- [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/v50.2.2...v50.2.3)

Updates `eslint-plugin-react-refresh` from 0.4.11 to 0.4.12
- [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.11...v0.4.12)

Updates `tsx` from 4.19.0 to 4.19.1
- [Release notes](https://github.com/privatenumber/tsx/releases)
- [Changelog](https://github.com/privatenumber/tsx/blob/master/release.config.cjs)
- [Commits](https://github.com/privatenumber/tsx/compare/v4.19.0...v4.19.1)

Updates `@types/mocha` from 10.0.7 to 10.0.8
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mocha)

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

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

Updates `@types/chrome` from 0.0.270 to 0.0.271
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
  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: tsx
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-minor
- dependency-name: "@types/mocha"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-minor
- dependency-name: postcss
  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: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 11:18:23 +02:00
dependabot[bot] 17763ecb16 build(deps): bump the cargo-minor group with 4 updates
Bumps the cargo-minor group with 4 updates: [anyhow](https://github.com/dtolnay/anyhow), [fontdb](https://github.com/RazrFalcon/fontdb), [gilrs](https://gitlab.com/gilrs-project/gilrs) and [pretty_assertions](https://github.com/rust-pretty-assertions/rust-pretty-assertions).


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

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

Updates `gilrs` from 0.10.9 to 0.11.0
- [Commits](https://gitlab.com/gilrs-project/gilrs/compare/v0.10.9...v0.11.0)

Updates `pretty_assertions` from 1.4.0 to 1.4.1
- [Release notes](https://github.com/rust-pretty-assertions/rust-pretty-assertions/releases)
- [Changelog](https://github.com/rust-pretty-assertions/rust-pretty-assertions/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-pretty-assertions/rust-pretty-assertions/compare/v1.4.0...v1.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-16 11:07:08 +02:00
Nathan Adams b9573ffd8c chore: Make crowdin use T- and A- labels 2024-09-16 10:21:58 +02:00
Nathan Adams d526d2dd39 chore: Make dependabot use T- and A- labels 2024-09-16 10:21:58 +02:00
Aaron Hill 514b5ad774 core: Replace `on_exit_frame` with iteration over Loaders
This removes the need to traverse the entire display object tree -
we instead just try to fire events (when ready) on corresponding
`MovieClip`s for our `Loader::Movie` instances
2024-09-15 18:10:46 -04:00
Kamil Jarosz 94bdf6b9c6 desktop: Use FilePicker for picking files in ActionScript
This improves the experience of picking files from AS, as the pickers
will now be properly integrated with Ruffle.
2024-09-15 20:00:42 +02:00
Kamil Jarosz 4e395b26ad desktop: Add FilePicker::show_dialog
This method makes it possible to easily integrate an existing RFD
dialog with Ruffle, i.e. make sure it's a proper child of the main window
and ensure there's only one picker present at any moment.
2024-09-15 20:00:42 +02:00
Kamil Jarosz c34a4adb71 desktop: Rename pick_file to pick_ruffle_file
This change emphasizes that we want to pick a file to open by Ruffle
contrary to picking files e.g. from ActionScript.
2024-09-15 20:00:42 +02:00
Yaman Kassir c457fba947
core: Strip BOM in URLLoader text data (#17513) 2024-09-15 17:39:52 +00:00
Kamil Jarosz c378835038 desktop: Add VectorGraphics Freedesktop category
Ruffle handles SWF files, which are generally vector graphic animations.
2024-09-15 18:15:37 +02:00
Kamil Jarosz 6c1b17c2f4 desktop: Change order of Freedesktop categories
Apparently the order matters when desktop environments
decide to include the app only in one category.
It seems that we should list more important categories first.
2024-09-15 18:15:37 +02:00
Aaron Hill 6898485466 avm2: Use RefLock for BytecodeMethod.verified_info 2024-09-14 20:25:37 -04:00
wsxarcher 7d1373368b core,web: Add the ability to load TTF/OTF/OTC as default fonts for the extension 2024-09-13 22:22:38 +02:00
Moulins e6e92dd175 avm2: Also use avmplus' qsort in `Vector.sort`
This was forgotten in #17846.
2024-09-13 21:29:43 +02:00
Kamil Jarosz 24b0c8b01e tests: Add avm1/sandbox_type_remote test
Verifies the sandbox type of SWFs loaded through network.
2024-09-13 17:30:31 +02:00
Kamil Jarosz 5da61c8b90 tests: Add avm1/sandbox_type_local_network test
Verifies the sandbox type of a local SWF with network enabled.
2024-09-13 17:30:31 +02:00
Kamil Jarosz 04c19dbdbc tests: Add avm1/sandbox_type_local_file test
Verifies the sandbox type of a local SWF with network disabled.
2024-09-13 17:30:31 +02:00
Kamil Jarosz acdb355918 tests: Add avm2/sandbox_type_remote test
Verifies the sandbox type of SWFs loaded through network.
2024-09-13 17:30:31 +02:00
Kamil Jarosz f77dddb6f5 tests: Add avm2/sandbox_type_local_network test
Verifies the sandbox type of a local SWF with network enabled.
2024-09-13 17:30:31 +02:00
Kamil Jarosz 4607bfd987 tests: Add avm2/sandbox_type_local_file test
Verifies the sandbox type of a local SWF with network disabled.
2024-09-13 17:30:31 +02:00
Kamil Jarosz cbb1af7825 core: Use proper sandbox type per SWF
It's the first step of implementing the security sandbox and its
filesystem/network separation policy.
Before that Ruffle assigned `localTrusted` sandbox type for
all movies except web, where `remote` was used.
The sandbox type also was assigned to the player,
and not SWFs as it should.
This patch does not introduce any sandbox policies based
on the sandbox type, just the proper sandbox type detection.
It is also not possible to specify trusted movies,
and AIR applications don't use the `application` type yet.
2024-09-13 17:30:31 +02:00
Kamil Jarosz 41446f07d8 core: Add SandboxType::Application for AIR apps 2024-09-13 17:30:31 +02:00
Kamil Jarosz 6053fc586d core: Move SandboxType from avm1 to sandbox module 2024-09-13 17:30:31 +02:00
Lord-McSweeney f1da1457eb avm2: Return actual VerifyErrors for constant pool errors
This requires passing around an Activation
2024-09-12 16:45:51 -07:00
Kamil Jarosz 5760aa7a8e chore: Use PanicHookInfo instead of PanicInfo
Renamed in Rust 1.81.0, see https://releases.rs/docs/1.81.0/#compatibility-notes
2024-09-13 00:47:41 +02:00
TÖRÖK Attila e61fc254d1 Revert "build: Freeze rustc for nightly builds to 1.80"
This reverts commit ff9ce693ad.
2024-09-13 00:03:54 +02:00