Commit Graph

64 Commits

Author SHA1 Message Date
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 eef694e9da tests: Add missing text control codes 2024-05-06 22:17:41 +02:00
Kamil Jarosz e09e199eb3 tests: Fix text control codes mapping 2024-05-06 22:17:41 +02:00
Nathan Adams 19c914c5a8 chore: Use workspace version for url 2024-04-04 17:29:00 +02:00
Nathan Adams 9d665ce448 chore: Use workspace version for serde 2024-04-04 17:29:00 +02:00
Nathan Adams d8fec1cabc chore: Use workspace version for image 2024-04-04 17:29:00 +02:00
Nathan Adams 26df7d78c4 chore: Use workspace version for chrono 2024-04-04 17:29:00 +02:00
Nathan Adams 8a390163d6 chore: Use workspace version for async-channel 2024-04-04 17:29:00 +02:00
Nathan Adams 8e4127aef6 chore: Use workspace version for anyhow 2024-04-04 17:29:00 +02:00
TÖRÖK Attila 36413a70f2 chore: Remove or ignore any unused deps detected by cargo-machete 2024-04-01 22:29:38 +02:00
Kamil Jarosz bc9aa18d6f tests: Add AutomatedEvent::KeyUp 2024-03-29 23:20:15 +01:00
renovate[bot] 98cbe9cf31 fix(deps): update rust dependencies 2024-03-25 02:47:32 +01:00
renovate[bot] d70560cb82 fix(deps): update rust dependencies 2024-03-22 11:10:59 +01:00
TÖRÖK Attila d9f17dac44 chore: Bump `image` to `v0.25`, without the `dxt` feature 2024-03-19 00:14:48 +01:00
renovate[bot] 3f9f19b7ac fix(deps): update rust dependencies 2024-03-14 16:45:29 +01:00
renovate[bot] a916369f21 fix(deps): update rust dependencies 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
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
renovate[bot] 9cdb2f31cc fix(deps): update rust dependencies 2024-02-26 08:14:26 +01:00
renovate[bot] 6b89737093 fix(deps): update rust dependencies 2024-02-19 11:32:22 +01:00
Nathan Adams 0eab4405f6 tests: When a test is known_failure but doesn't have an expected.png, don't mark it as now-passing 2024-02-18 18:01:28 +01:00
renovate[bot] 477440d387 fix(deps): update rust dependencies 2024-02-05 07:56:07 +01:00
renovate[bot] 3737725a21 fix(deps): update rust dependencies 2024-01-30 09:23:15 +01:00
Nathan Adams f678d13ca8 tests: Throw an Err, not panic, in Approximations::compare 2024-01-26 18:59:06 +01:00
Nathan Adams aee051fa45 tests: Split test running into tick/test phases. This is enough to make it work on web. 2024-01-26 18:59:06 +01:00
Nathan Adams b6614d9705 tests: Turn Test::run() into Test::create_test_runner() - handle running externally 2024-01-26 18:59:06 +01:00
Nathan Adams 1b8d3f7392 tests: Output comparison is part of the TestRunner 2024-01-26 18:59:06 +01:00
Nathan Adams 7c4e345905 tests: Make Environment::create_renderer only make one renderer, not N amount 2024-01-26 18:59:06 +01:00
Nathan Adams bd64ee2942 tests: Extract out Test::movie() 2024-01-26 18:59:06 +01:00
Nathan Adams 5040bf3aff tests: Extract out a TestRunner struct 2024-01-26 18:59:06 +01: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
Tom Schuster 601748a987 avm2: FileReference browse select test 2024-01-23 18:43:36 +01:00
renovate[bot] 262dff83a4 fix(deps): update rust dependencies 2024-01-22 03:09:33 +01:00
Tom Schuster e0f5b8906d desktop: Support device font with a non-zero index 2024-01-19 19:21:48 +01:00
Nathan Adams d717f92403 tests: Don't set logger in test framework, it's the responsibility of the caller 2024-01-18 16:07:24 +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
renovate[bot] 3c115238fd fix(deps): update rust dependencies 2024-01-16 01:13:38 +01:00
Kamil Jarosz 1db34993a2 tests: Add AutomatedEvent::SetClipboardText
Currently in tests (input.json) it is possible to trigger Ctrl-V using:

    { "type": "TextControl", "code": "Paste" },

But there is no way of populating the clipboard.
This patch adds AutomatedEvent::SetClipboardText, so the clipboard
may be populated before pasting:

    { "type": "SetClipboardText", "text": "<value>" },
    { "type": "TextControl", "code": "Paste" },
2024-01-11 23:22:49 +01:00
Tom Schuster f47e15b68c tests: Add a device font test using Tinos 2024-01-08 23:00:18 +01:00
renovate[bot] a328deab11 fix(deps): update rust dependencies 2024-01-08 02:59:04 +01:00
TÖRÖK Attila 217585daa8 chore: Delegate `[lints]` in `Cargo.toml` of all packages to the workspace 2024-01-05 11:28:19 +01:00
renovate[bot] 91d0520a43 fix(deps): update rust dependencies 2024-01-01 02:03:54 +01:00
renovate[bot] 216a8f3b14 fix(deps): update rust dependencies 2023-12-25 10:09:07 +01:00
Tom Schuster e3d8a279ad core: load_device_font register function must be &mut 2023-12-22 13:47:48 +01:00
Aaron Hill 287ca8801a avm2: Implement AIR playerglobal versioning
This builds on our existing playerglobal versioning support
to add in AIR versioning. We closely follow the avmplus implementation:

* When an SWF is loaded, we chose either a FlashPlayer or AIR
APIVersion for its SWF version, based on our configured player runtime.
* When loading playerglobals, we look at the player runtime. In AIR
  mode, we map FlashPlayer-versioned definitions to the closest AIR
  version. This ensures that all runtime APIVersions are in the
  same series (either AIR or FlashPlayer). In FlashPlayer mode,
  all AIR-versioned definitions get mapped to VM_INTERNAL, hiding
  them from user code.

Part of our existing api versioning code was implemented incorrectly.
Within playerglobals, we need to treat all unmarked namespaces as
VM_INTERNAL - this allows things like playerglobal script
initializer "initproperty" opcodes to see any VM_INTERNAL AIR
definitions (when we run under FlashPlayer mode). Previously, we
were using AllVersions, which would result in those VM_INTERNAL
definitions being hidden from other playerglobal code, which is
not correct.

Using this support, I've added a stub for the AIR-only
'flash.net.DatagramSocket'. I've also extended the test framework
with a new 'player_options.runtime' config option, which can be
set to "AIR" or "FlashPlayer" to configure the test runtime mode.

I've also added two new tests:
* 'air_hidden_lookup' runs under the FlashPlayer runtime, and verifies
  that a list of classes (currently just "DatagramSocket" are
  inacessible).
* 'air_datagram_socket', which uses `player_options.runtime = "AIR"`
  to construct an instance of `flash.net.DatagramSocket`. We can
  extend this test once we implement more of `DatagramSocket`

With this commit, we have all of the needed infrastructure to start
implementing and testing AIR-only classes and methods.
2023-12-16 19:11:50 -05:00
renovate[bot] 6da223a875 fix(deps): update rust dependencies 2023-11-27 09:44:47 +01:00
MrCheeze 5920a6426e core: Allow Regular/Bold/Italic device fonts to be registered separately 2023-11-24 17:08:35 +01:00
renovate[bot] 7757d060ff fix(deps): update rust dependencies to v2 2023-11-20 09:03:08 +01:00