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
Adrian Wielgosik
4a4b500f1d
web: Make displayMessage public again
2024-09-12 23:50:42 +02:00
TÖRÖK Attila
131ec73782
chore: Bump `jpegxr`, `coreaudio-sys` and `bindgen` dependencies
...
Thereby dropping `which`, `lazycell`, and a duplicated `itertools` version.
2024-09-12 16:48:52 +02:00
Kamil Jarosz
e8f52fd8b5
video: Use cache dir for storing downloaded OpenH264 library
...
Using the executable's parent directory is a bad idea in most cases,
as the place where Ruffle is installed should not be modified.
This patch changes the directory where the OpenH264 library is saved to
the cache directory, which should always be writable.
2024-09-12 13:05:27 +02:00
Kamil Jarosz
3da0246856
desktop: Add cache directory to options
2024-09-12 13:05:27 +02:00
Kamil Jarosz
22fda90f92
video: Prefer loading system OpenH264 library to downloading it
...
Some systems do have OpenH264 installed and in order to get
rid of the delay caused by downloading the library
(and needlessly downloading it in the first place),
an attempt is made first to load OpenH264 as a system library.
When loading fails (or version is mismatched), only then Ruffle
downloads OpenH264 and uses that version of the library.
2024-09-12 12:03:02 +02:00
Kamil Jarosz
f7ec20fd92
video: Add OpenH264Data struct
...
This struct makes it easier to manage os/arch-specific OpenH264 information.
2024-09-12 12:03:02 +02:00
Kamil Jarosz
7f8beeb1e5
video: Reuse OpenH264 across decoders and load early
...
By using the H264Codec struct, we can load OpenH264 early
and reuse its instance for all decoders.
2024-09-12 12:03:02 +02:00
Kamil Jarosz
1f26edd5b1
video: Add OpenH264Codec struct
...
This struct represents the OpenH264 codec and makes it possible to
reuse the reference to the OpenH264 library across decoders.
It also adds better error handling.
2024-09-12 12:03:02 +02:00
Kamil Jarosz
835d2eabaa
video: Rename path to filename in OpenH264::new
...
This value does not have to be a path, it can be a filename of
a library that is automatically located on the system.
2024-09-12 12:03:02 +02:00
Kamil Jarosz
d0ede26cce
desktop: Install Ruffle metadata in PKGBUILD
...
This most importantly adds a way of opening Ruffle using GUI.
2024-09-12 11:00:32 +02:00
dependabot[bot]
db9c982484
build(deps): bump send and express in /web
...
Bumps [send](https://github.com/pillarjs/send ) and [express](https://github.com/expressjs/express ). These dependencies needed to be updated together.
Updates `send` from 0.18.0 to 0.19.0
- [Release notes](https://github.com/pillarjs/send/releases )
- [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md )
- [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0 )
Updates `express` from 4.20.0 to 4.21.0
- [Release notes](https://github.com/expressjs/express/releases )
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md )
- [Commits](https://github.com/expressjs/express/compare/4.20.0...4.21.0 )
---
updated-dependencies:
- dependency-name: send
dependency-type: indirect
- dependency-name: express
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-09-12 07:12:58 +02:00
Crowdin Bot
3b6d5088d1
chore: Update translations from Crowdin
2024-09-11 23:27:35 +02:00
Moulins
725d887ceb
avm2: replace Rust's sort by avmplus' for `Array` sorts; unblocks #17812
...
Replace the use of Rust's standard sort in `Array.sort` and `sortOn` by
a port of avmplus' QuickSort algorithm. This avoid panics on Rust >=1.81
when `Array.sort` is called with a non-Ord comparison function, and will
always produce the same result as Flash Player.
2024-09-11 21:58:34 +02:00
Moulins
b32bb16dc6
tests: add (failing) tests for random Array "sorting"
...
These tests fail because we do not implement the exact same algorithm
as Flash Player:
- in AVM1, the test produces a different result
- in AVM2, the test panics because Rust's sort doesn't accomodate
non-Ord comparison functions
2024-09-11 21:58:34 +02:00
Lord-McSweeney
42b44901fc
avm2: Add `get_ascii_char` to `AvmStringInterner` and use it
2024-09-11 11:31:58 -07:00
Lord-McSweeney
b3769aa6f2
avm2: Use interned "*" character in `PropertyClass::get_name` and `Multiname::to_qualified_name_or_star`
2024-09-11 09:33:51 -07:00
Lord-McSweeney
3438966a04
avm2: Add `any` field to `CommonMultinames` and use it
...
This should reduce Gc allocations when loading multiname index 0 from the cpool
2024-09-11 09:33:51 -07:00
Lord-McSweeney
4a43ec0548
avm2: Put some more Multinames behind a Gc
2024-09-11 09:33:51 -07:00
TÖRÖK Attila
5512bc5742
chore: Bump `wayland-*` dependencies, drop duplicate `quick-xml` version `0.34.0`
2024-09-11 14:44:40 +02:00
dependabot[bot]
2ac916d1a3
build(deps): bump send and express in /web
...
Bumps [send](https://github.com/pillarjs/send ) and [express](https://github.com/expressjs/express ). These dependencies needed to be updated together.
Updates `send` from 0.18.0 to 0.19.0
- [Release notes](https://github.com/pillarjs/send/releases )
- [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md )
- [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0 )
Updates `express` from 4.19.2 to 4.20.0
- [Release notes](https://github.com/expressjs/express/releases )
- [Changelog](https://github.com/expressjs/express/blob/master/History.md )
- [Commits](https://github.com/expressjs/express/compare/4.19.2...4.20.0 )
---
updated-dependencies:
- dependency-name: send
dependency-type: indirect
- dependency-name: express
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-09-11 14:16:40 +02:00
Kamil Jarosz
75e4eaaba5
desktop: Improve filters in file pickers
2024-09-11 13:48:16 +02:00
Kamil Jarosz
14302b8287
desktop: Internationalize file pickers
2024-09-11 13:48:16 +02:00
TÖRÖK Attila
490c02bb58
core,desktop: Update to `winit` `v0.30.5` and latest `egui` from git
2024-09-11 13:24:14 +02:00
Lord-McSweeney
0adbf65490
avm2: Remove "Display object container has no child with name" warning
2024-09-10 22:46:42 -07:00
Lord-McSweeney
c9a994fb47
core: Remove "Registering export for non-movie clip" warning log
2024-09-10 22:46:42 -07:00
Adrian Wielgosik
aded790672
xml: Cache regex in custom_unescape
2024-09-10 18:04:25 +02:00