Commit Graph

472 Commits

Author SHA1 Message Date
Nathan Adams 381b0897c9 avm2: Implement ExternalInterface.objectID 2024-05-26 23:00:33 +02:00
sleepycatcoding be8cbd64d6 core/render/web: Make FromStr exclusively for snake_case 2024-05-16 01:14:42 +03:00
Kamil Jarosz 8e6e71b2f7 web: Download the file on FileReference.save
This patch adds support for saving files on web using FileReference.
When writing data, a download is triggered with the default file name.
Currently, there's no dialog that lets the user select save destination.

This patch also ensures that all implementations of FileDialogResult
behave the same way: desktop, web, and tests.
The methods `write` and `refresh` have been merged into one:
`write_and_refresh`, which allows the tests and web implementations
behave the same way as desktop.
2024-05-07 22:26:30 +02:00
Kamil Jarosz 997927530e web: Add support for NumLock 2024-04-08 20:14:07 +02:00
sleepycatcoding 92f437ec15 desktop: Add storage backend preference 2024-04-03 23:44:27 +02:00
David Wendt bb71b61c9a chore: Fix false positive clippy lint in rustc 1.78 betas 2024-03-27 00:16:36 -06:00
Adrian Wielgosik 08157a056e build: Fix redundant import warnings 2024-03-23 19:23:18 +01:00
Nathan Adams d3e12e4a24 web: Use DateTime::from_timestamp 2024-03-06 21:58:40 +01:00
Nathan Adams 09dfa6427e desktop: Allow changing the language in Preferences 2024-03-05 00:02:27 +01:00
TÖRÖK Attila 55773f0205 chore: Replace `generational-arena` with `slotmap` 2024-03-02 19:42:11 +01:00
Kamil Jarosz bb79e8ad5d web: Close sockets properly
This patch ensures that sockets are closed properly.
Without it, when the application-end of the socket was closed,
the other end was left intact, and the socket was not closed.
2024-03-01 23:16:10 +01:00
Kamil Jarosz cc8b0aa5dd core: Use async channels in NavigatorBackend
This has several advantages:
1. it allows using async variants of send and recv,
2. it adds consistency as until now Receiver was async,
   and Sender was not.
2024-02-28 19:42:54 +01:00
Kamil Jarosz 50b5f29c0a text: Make enter add a new line in multiline fields 2024-02-03 13:40:07 +01:00
Kamil Jarosz 0657d2daa2 text: Add advanced horizontal text control codes 2024-02-01 20:18:29 +01:00
Aaron Hill 5b685d411f chore: Fix nightly Clippy lints 2024-01-28 16:03:29 -05:00
Tom Schuster 941e60aef5 web: Temporary disable display_file_save_dialog to prevent panics 2024-01-27 00:41:14 +01:00
Daniel Jacobs 119a093c27
web: Add allowFullscreen embed/object option (part of #4258) 2024-01-26 10:06:29 +00:00
David Wendt 9f70fab5b5 web: Use single-threaded shared ownership for body stream 2024-01-25 23:24:09 -07:00
David Wendt 006c3af4b8 core: Add backend method for getting the expected length of a response. 2024-01-25 23:24:09 -07:00
David Wendt 91dd9563bb core: Add method to read downloads in chunks instead of all-at-once. 2024-01-25 23:24:09 -07:00
David Wendt 06eb2e1ee8 core: `Request` is now a trait. Body download is deferred to a second async method. 2024-01-25 23:24:09 -07:00
Nathan Adams c63f51f823 web: Enable webgpu 2024-01-21 19:36:08 +01:00
Tom Schuster 06c7e015e2 web: Support DefineFont4 in fontSources 2024-01-21 08:02:45 +01:00
Daniel Jacobs 8f2292c2c7 core: Add error for loading invalid SWF files and display as appropriate 2024-01-17 17:38:47 -05:00
Aaron Hill 6c420fa5d5 avm2: Run most of Loader.loadBytes immediately
This requires moving `set_root_movie` into `UpdateContext`.

Now, we preload the entire movieclip immediately - Flash Player
does this regardless of the size of the SWF.
The 'Loader::load_complete' is delayed to the end of the frame
(which is when the root class is constructed for the loaded clip).
2024-01-17 00:53:08 +01:00
Nathan Adams 6b7bca1fd6 web: Support F13..F24 keys 2024-01-11 22:40:37 +01:00
Daniel Jacobs 51254e16d1 web: Use unwrap_or_default for the PlayerRuntime instead or map_err 2023-12-30 17:58:36 -05:00
Daniel Jacobs 27849b5cdc web: Add playerRuntime option to config for air or flashPlayer 2023-12-30 17:58:36 -05:00
Tom Schuster e3d8a279ad core: load_device_font register function must be &mut 2023-12-22 13:47:48 +01:00
MrCheeze 5920a6426e core: Allow Regular/Bold/Italic device fonts to be registered separately 2023-11-24 17:08:35 +01:00
Tom Schuster 96059a8e25 avm2: Implement flash.system.Security pageDomain 2023-11-23 19:55:32 +01:00
Nathan Adams 54fae4fd5b web: Fix enter key's keyCode, + test 2023-11-13 21:08:38 +01:00
Nathan Adams 94009e4b1a web: Add credentialAllowList config option 2023-11-09 13:04:12 +01:00
CUB3D b0d88645bc avm1: Implement FileReference 2023-11-03 19:32:24 +01:00
Nathan Adams 5682e0101d web: Add defaultFonts config option for specifying the default _sans etc 2023-10-30 15:15:57 +01:00
Nathan Adams 857f65d077 web: Add fontSources config option for loading extra device fonts than our defaults 2023-10-30 15:15:57 +01:00
Nathan Adams 74a7ab5afe core: Implement device font lookup, and multiple default device fonts 2023-10-15 14:09:21 +02:00
sleepycatcoding 1bfcc0a670 web: Rename wsProxy config option to socketProxy 2023-10-15 12:00:41 +02:00
sleepycatcoding d3765027f0 web: Use gloo_net instead of manually using web_sys
This relieves some headaches with on connect callback and spawning of the
sending async task, since some SWFs like to send data before the connect event
is called.
2023-10-15 12:00:41 +02:00
sleepycatcoding a067e9a5e8 web: Add wsProxy config option 2023-10-15 12:00:41 +02:00
sleepycatcoding e2cfdcc2e1 web: Close WebSocket if receiver dropped 2023-10-15 12:00:41 +02:00
sleepycatcoding 5406b9f95e web: Experimental WebSocket based backend for Sockets
This is currently untested.
2023-10-15 12:00:41 +02:00
David Wendt 7158039135 audio: Audio streamed from FLVs do not have the SWF MP3 header 2023-08-23 15:36:20 -06:00
Daniel Jacobs dbb5e381f2 core/desktop/web: Play unsupported videos with browser 2023-08-07 14:31:33 -06:00
sleepycatcoding 7acc25d319 web: Update socket stub 2023-07-31 22:32:03 +02:00
Nathan Adams 35234dccec web: Ensure we set ourselves as the FSCommand provider 2023-07-26 17:00:15 +02:00
Nathan Adams 1a0a82d898 core: Move fscommand execution outside of ExternalInterfaceProvider, so it can be implemented without causing ExternalInterface.available to become true 2023-07-26 17:00:15 +02:00
sleepycatcoding 75672ae998 web, tests: Update connect_socket stubs 2023-07-23 09:13:01 +02:00
sleepycatcoding ed22a7a23b web, tests: remove Option for connection timeout 2023-07-23 09:13:01 +02:00
sleepycatcoding 486c0ca149 web, tests: Ignore timeout parameter 2023-07-23 09:13:01 +02:00