Commit Graph

502 Commits

Author SHA1 Message Date
Kornelius Rohrschneider 0b30b7fdda core: Use HTTP response encoding if existing
If System#useCodepage has been set to true, the form loader now uses the
encoding specified in the HTTP response content type field, if existing,
to decode remote text files. chardetng is now (only) used if the HTTP
response doesn't specify any encoding or if the file is local.
2024-06-26 02:37:44 +02:00
Kamil Jarosz b36a6b792b web: Implement pasting text using Clipboard API
Ruffle does not have direct clipboard access on web, so the current
paste implementation from the context menu does not work.
This patch intercepts the paste context menu callback,
and uses the Clipboard API to ask the browser for the clipboard
and update it before calling the callback.
When the Clipboard API is not available or the user denies
clipboard permission, a modal informing the user about
cut, copy, paste shortcuts is displayed.
2024-06-19 00:15:07 +02:00
Kamil Jarosz 60ee0379b7 web: Add clipboard modal informing about shortcuts
This modal informs the user that they can use shortcuts
for copy, cut, and paste instead of using the context menu.
This modal is meant to be displayed when the browser
does not support reading the clipboard,
or the user denies permission to the clipboard.
2024-06-19 00:15:07 +02:00
Nathan Adams c3f1a18d20 web: SocketProxy doesn't need serde 2024-06-13 00:22:33 +02:00
Kamil Jarosz c23ec0782a core: Prevent pasting empty string when the clipboard is empty 2024-06-09 15:38:35 +02:00
Nathan Adams 0ded7c61ea web: Remove jszip, use rust 2024-06-08 21:53:07 +02:00
Nathan Adams dabdcd63ad web: Fix japanese font registration in rust side, and rename them to camelCase for consistency (not a breaking change as it didn't actually work prior to this...) 2024-06-08 08:42:04 +02:00
Nathan Adams 5cb46b1f9b web: Fixed italicnes in font registration 2024-06-08 08:42:04 +02:00
Nathan Adams 17d9d01d6b web: Builder is now responsible for making the actual Player 2024-06-08 08:42:04 +02:00
Nathan Adams 8ce7e82a0d web: Add create_storage_backend to builder 2024-06-08 08:42:04 +02:00
Nathan Adams b727610cc4 web: Add create_navigator to builder 2024-06-08 08:42:04 +02:00
Nathan Adams 70fca6fa0a web: Add create_audio to builder 2024-06-08 08:42:04 +02:00
Nathan Adams 77a65be5a2 web: Move create_renderer to builder 2024-06-08 08:42:04 +02:00
Nathan Adams a6ab799e1f web: Create a RuffleInstanceBuilder::create_log_subscriber 2024-06-08 08:42:04 +02:00
Nathan Adams c18520bd70 web: Create a global_init function, move our 'do this if first instance' stuff there 2024-06-08 08:42:04 +02:00
Nathan Adams 85ca0aeff8 web: Move font registration to builder, not after we've made the instance 2024-06-08 08:42:04 +02:00
Nathan Adams aa804e520b web: Store StageQuality in builder, do the defaulting in JS 2024-06-08 08:42:04 +02:00
Nathan Adams af71ef3276 web: Store StageScaleMode directly in builder, not Option<> 2024-06-08 08:42:04 +02:00
Nathan Adams 7c340f5b6c web: Store CompatibilityRules in builder, remove a bit of abstraction 2024-06-08 08:42:04 +02:00
Nathan Adams 3fa8735e97 web: Don't parse config in Rust, do it in Typescript with some tests 2024-06-08 08:42:04 +02:00
Nathan Adams f9f7ece8e3 web: Support ExternalInterface.call("function(){....}") 2024-06-07 16:58:57 +02:00
Nathan Adams f887a56bcc web: Remove wrong dead_code annotation 2024-06-03 21:50:20 +02:00
Nathan Adams cf9eded421 web: Swap JsCallback closure and is_capture args, to put closure last 2024-06-03 21:50:20 +02:00
Nathan Adams cf2f16f4b4 web: Make JsCallback take a FnMut, and do the Closure internally, to reduce boilerplate 2024-06-03 21:50:20 +02:00
Nathan Adams a9c5928b62 web: Inline all the Closures for JsCallback::register 2024-06-03 21:50:20 +02:00
Nathan Adams e7fc1a7a4d web: Dedupe a whole bunch of callback related code, by making a struct with Drop impl 2024-06-03 21:50:20 +02:00
Nathan Adams b04d12877e web: Use RuffleHandle as a custom key type, not a wrapper over DefaultKey 2024-06-01 20:34:10 +02:00
Nathan Adams dda9058f07 web: Rename Ruffle to RuffleHandle 2024-06-01 20:34:10 +02:00
Nathan Adams ad2f1dc1a5 web: Move some ExternalInterface util methods out of lib.rs 2024-06-01 20:34:10 +02:00
Nathan Adams 1e3511c7b0 web: Move some input util methods out of lib.rs 2024-06-01 20:34:10 +02:00
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