Commit Graph

53 Commits

Author SHA1 Message Date
Kamil Jarosz 43472ed221 frontend-utils: Use a loopback address for tests on Linux
Turns out that some hosts will try to connect to the black hole address
instead of failing instantaneously, so this patch replaces that address
with a loopback address with an unlikely to be used port.
2024-07-22 11:19:29 +02:00
Aaron Hill 6e93927f63 web: Check for locked 'Player' mutex and reschedule with setTimeout
We use 'wasm-bindgen-futures' as our futures executor on web, which
in turn uses 'queueMicroTask'. This can result in the browser executing
one of our futures while we're still inside our `requestAnimationFrame`
callback (in particular, while we still have the `Player` mutex locked).

We now detect this condition by attempting the lock the Player mutex
inside of our `spawn_local` future. If this fails, we `await`
a `setTimeout`-based promise, which ensures that our code runs in
a new top-level `setTimeout` javascript 'task' (outside of our
`requestAnimationFrame` callback).
2024-07-15 22:46:22 +02:00
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
sleepycatcoding 9979631f8c frontend-utils: Replace async-net's `TcpStream` with tokio's 2024-06-23 00:40:24 +03:00
Nathan Adams 50c84f3e88 frontend-utils: Set a useragent for requests 2024-06-01 22:32:48 +02:00
sleepycatcoding 3c944e35c7 desktop/frontend-utils: Show filename or bundle name in recent list
This should lead to shorter recent entries in the GUI by only showing the filename or bundle name (depending on which was opened).

If name field is missing from `recents.toml`, which would be the case with files created by previous Ruffle versions, it falls back to the filename from the URL.
2024-05-26 00:37:35 +03:00
Marco Bartoli e1f014ea85
desktop: Add HTTP Referer and Cookie (#16424) 2024-05-24 22:07:36 +00:00
sleepycatcoding 6a59cb4445 frontend-utils: Hook up player options to bundle parser 2024-05-16 01:14:42 +03:00
sleepycatcoding 9e70a8697e frontend-utils: Implement player options deserializer
Also adds `ReadExt::get_float_like` helper.
2024-05-16 01:14:42 +03:00
sleepycatcoding d74c590e4a frontend-utils: Update bundle specification
Co-authored-by: Nathan Adams <dinnerbone@dinnerbone.com>
2024-05-16 01:14:42 +03:00
Nathan Adams e31bba081e frontend-utils: Move player_options up from bundle 2024-05-10 19:51:37 +02:00
Nathan Adams 313ee5dd27 frontend-utils: Extracted out a PlayerOptions struct from desktop 2024-05-10 19:51:37 +02:00
sleepycatcoding 18f86634a4 frontend-utils: Do not panic when recent limit is zero and file is empty 2024-05-09 19:55:45 +03:00
sleepycatcoding 059abb17ce desktop: Add a way to clear recently played files 2024-05-09 11:10:44 +02:00
sleepycatcoding 15a0d18b16 desktop: Filter out invalid and unavailable recent entries 2024-04-29 20:46:42 +02:00
sleepycatcoding 7c80091488 frontend-utils: Initial recents reader/writer 2024-04-29 20:46:42 +02:00
sleepycatcoding 6203f99dd7 frontend-utils: Add integer parse methods 2024-04-27 01:04:40 +02:00
sleepycatcoding de003e12e7 frontend-utils: Add warning capable casting methods 2024-04-27 01:04:40 +02:00
sleepycatcoding c95d02339e frontend-utils: Drop 'static bound from push_key 2024-04-27 01:04:40 +02:00
Kamil Jarosz f30c04e8b4 frontend-utils: Get rid of deadlocks in AsyncExecutor
3d04971a was the first approach to eliminating deadlocks caused by
waking a task from another one. A task may also try to wake itself,
and that case was unfortunately not covered.

This patch rewrites the AsyncExecutor to use an async
channel for queuing tasks instead of a flag.
Using a flag required holding a lock for a task which was
problematic when a task needed to be awoken.
A flag also required doing a full search through tasks each poll,
which could be ineffective.
2024-04-24 01:02:23 +02:00
dependabot[bot] 09d17e722b build(deps): bump zip from 0.6.6 to 1.1.1
Bumps [zip](https://github.com/Pr0methean/zip) from 0.6.6 to 1.1.1.
- [Changelog](https://github.com/Pr0methean/zip/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Pr0methean/zip/commits)

---
updated-dependencies:
- dependency-name: zip
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-23 23:47:26 +02:00
sleepycatcoding 86b35145ec frontend-utils: Unify warning format strings; add warning enum
This also lays the groundwork for translated warnings.
2024-04-22 14:20:50 +03:00
Tom Schuster cdf587c5a5 avm2: Fix two bugs that caused wrong query parameters with navigateToURL 2024-04-19 18:56:25 +02:00
Nathan Adams 0df83ed917 frontend-utils: Don't spam 'Double polling'. It's meaningless. 2024-04-18 16:39:11 +02:00
Nathan Adams 5bffc33be8 frontend-utils: Don't use tokio tasks inside ruffle's executor 2024-04-17 22:36:42 +02:00
Nathan Adams eea6578b02 frontend-utils: Don't use tokio task budgeting for reqwest 2024-04-15 23:07:56 +02:00
Nathan Adams c10d8b97b0 frontend-utils: Fix flaky socket tests 2024-04-15 23:07:56 +02:00
Nathan Adams 7079f38a9f frontend-utils: Switch to reqwest 2024-04-15 23:07:56 +02:00
Nathan Adams b1a8ed455f frontend-utils: Removed 'Desktop' from DesktopResponseBody, etc 2024-04-15 23:07:56 +02:00
Nathan Adams 5a9c5c5396 frontend-utils: Extracted out structs from inside ExternalNavigatorBackend::fetch 2024-04-15 23:07:56 +02:00
Nathan Adams 1bcc4d530a frontend-utils: Remove outdated comments 2024-04-11 23:14:44 +02:00
Nathan Adams f937945233 frontend-utils: Move ExternalNavigator from Desktop 2024-04-11 23:14:44 +02:00
Nathan Adams a3d468a568 frontend-utils: Move PlayingContent from Desktop 2024-04-11 23:14:44 +02:00
Nathan Adams df2a7285db frontend-utils: Rename WinitAsyncExecutor to just AsyncExecutor 2024-04-11 23:14:44 +02:00
Nathan Adams 29e515c672 frontend-utils: Move WinitAsyncExecutor from Desktop 2024-04-11 23:14:44 +02:00
Nathan Adams a188962306 frontend-utils: Move DiskStorageBackend from desktop 2024-04-11 23:14:44 +02:00
Daniel Jacobs 0f1cdf491d frontend-utils: Fix typo in README 2024-04-09 14:41:03 -04:00
sleepycatcoding 2cd915046e frontend-utils: Move bookmark writer from desktop 2024-04-09 18:54:11 +02:00
sleepycatcoding 54dcec7c60 frontend-utils: Move bookmark reader from desktop 2024-04-09 18:54:11 +02:00
sleepycatcoding 7c7f383595 frontend-utils: Move url_to_readable_name from desktop 2024-04-09 18:54:11 +02:00
Nathan Adams f737739c15 frontend-utils: Fix link in readme 2024-04-09 00:01:59 +02:00
Nathan Adams 57381f42b2 desktop: Fix opening faux-file URLs on windows 2024-04-09 00:01:59 +02:00
Nathan Adams 8597688ebb chore: Fix weird formatting that rustfmt isn't catching 2024-04-09 00:01:59 +02:00
Nathan Adams 023ae5d14a frontend-utils: Fixed tests 2024-04-09 00:01:59 +02:00
Nathan Adams bf7a88d63f frontend-utils: Support .ruf files 2024-04-09 00:01:59 +02:00
Nathan Adams 4632a14376 desktop: Allow opening folder based bundles 2024-04-09 00:01:59 +02:00
Nathan Adams 961bc0a7c5 frontend-utils: Add initial bundle infrastructure 2024-04-09 00:01:59 +02:00
Nathan Adams 906837c6a1 frontend-utils: Rename ParseResult to ParseDetails 2024-04-09 00:01:59 +02:00
sleepycatcoding 9f71206fcf frontend-utils: Add TableExt trait
This moves the logic previously found in BookmarkWriter's `with_underlying_table`
into a common trait to be reused by other writers.
2024-04-04 20:01:14 +02:00
Nathan Adams f18d890bea frontend-utils: Move Bookmark from desktop 2024-04-04 11:16:50 +02:00