Commit Graph

33 Commits

Author SHA1 Message Date
EmperorBale 1020aa84d6 chore: Simplify response.status() formatting 2021-04-06 16:01:34 -06:00
EmperorBale e36ad2874b chore: Make error message more helpful 2021-04-06 16:01:34 -06:00
EmperorBale 51e2ebf492 web/desktop: Check the HTTP status of requests 2021-04-06 16:01:34 -06:00
Mike Welsh e5fb1f09e7 chore: Appease clippy
* #[derive(Collect)] should be before #[collect]
 * Replace redunant `&buf[..]` with `buf`
 * Changes most cases of UPPERCase to UpperCase
 * Allow upper_case_acronym on most SWF types, as they are from
   SWF spec/more annoying to change.
2021-02-12 06:32:42 -08:00
Mike Welsh 16bd7fade6 web: Use case-insensitive check for detecting javascript scheme 2021-02-08 03:41:16 -08:00
crumblingstatue 5f25fe8807
desktop: Don't unwrap url to file path conversion
It might not succeed.
This unwrap crashes the newgrounds Meat Boy flash on desktop.

Instead, use unwrap_or_default with an empty path. This will cause
the read to fail, but it's better than crashing the whole program.
2021-02-04 15:08:56 -08:00
Toad06 7480e836ec web: Changes from review 2021-01-11 13:16:00 -08:00
dependabot-preview[bot] 54367aafa0 build(deps): bump isahc from 0.9.14 to 1.0.2
Bumps [isahc](https://github.com/sagebind/isahc) from 0.9.14 to 1.0.2.
- [Release notes](https://github.com/sagebind/isahc/releases)
- [Commits](https://github.com/sagebind/isahc/compare/0.9.14...1.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-03 00:26:19 -08:00
Mike Welsh 94cb6e1680 desktop: Avoid panic on fetching invalid URLs 2020-12-31 16:36:02 -08:00
Sam Morrow c4d7b24629 web: Fix cors issues with http (close ruffle-rs#1486) 2020-12-14 05:51:28 -08:00
Colin Berry 5a93c7ffa0 desktop: Follow Redirects 2020-10-20 23:31:23 -07:00
Colin Berry 67d9b91448 desktop: Make Proxy behave during initial load 2020-10-20 23:31:23 -07:00
Colin Berry c51a31fde8 desktop: Support URL paths and Proxy options 2020-10-20 23:31:23 -07:00
Nathan Adams cb2461920b core: HTTP request values need to preserve order 2020-08-28 11:53:32 -07:00
David Wendt c926da8888 Refactor URL relativization into two utility methods that backends can provide base URLs and paths to. 2020-07-23 23:02:54 -04:00
David Wendt 7433bfe28f Add a `NavigatorBackend` method to resolve relative URLs. 2020-07-23 23:02:53 -04:00
Nathan Adams 59ccd75518 core: Rename loader::LoaderError to loader::Error 2020-06-20 15:02:00 -07:00
Nathan Adams 0f1eef9022 core: Introduce LoaderError to all Loader methods 2020-06-20 15:02:00 -07:00
Nathan Adams 5662b2d4d9 core: Make Value::coerce_to_string return a Cow<str>` 2020-06-19 12:48:28 -07:00
Nathan Adams f0445d94b8 render: Add wgpu-rs based renderer, used by desktop 2020-04-30 08:48:33 +02:00
Mike Welsh 650efad4b2 chore: Fix new clippy lints for Rust 1.43 2020-04-24 21:39:49 -07:00
Mike Welsh 0c0d3dfd41 core: Add Navigator::time_since_launch to use for getTimer
Change `ActionGetTime` (`getTimer`) to use a new backend method.
This allows it to return updated times if it is called multiple
times in a single frame. This fixes hangs caused by games that use
busy-loop "frame limiter" code.
2020-03-28 22:28:07 -07:00
Mike Welsh 5315d059b9 desktop: Fetch from local filesystem for now 2020-02-24 01:49:28 -08:00
David Wendt 88b10f21c4 Implement an async executor for desktop so that these methods don't immediately panic. 2020-02-22 00:02:46 -05:00
David Wendt 33d26b9149 Shorten `Pin<Box<dyn Future<Output=Result<T,E>> + 'static>>` into `OwnedFuture<T,E>`.
This is technically stricter on `fetch` impls, but right now we can't support non-`'static` futures at all.
2020-02-22 00:02:45 -05:00
David Wendt c7539872f7 Add the ability to POST data from `fetch`, and allow methods that read AVM locals into form data to `GET` or `POST` them. 2020-02-21 23:58:00 -05:00
David Wendt f4e4171ebe Make spawned futures falliable, and report those errors. 2020-02-21 23:57:56 -05:00
David Wendt 491d94c947 Pinbox all Futures.
Due to some strangeness with the way Rust implemented unsafe-to-move behavior, boxed futures are implicitly `Unpin`. Which is useless to us.

The reason for this is a little counter-intuitive. Actually, the fact that Rust supports memory pinning at all is a little odd, because the core language explicitly requires all types be movable. To get around this, Pin requires that all !Unpin types be *born pinned*. This is because you can't re-pin an already unpinned value in memory.

Anyway, this necessitates this silly API change.
2020-02-21 23:44:05 -05:00
David Wendt 00d25a768c Extremely basic impl of fetch/spawn methods for getting data off the web 2020-02-21 23:44:05 -05:00
Mike Welsh 82c1116c42 chore: cargo fmt 2019-09-16 20:37:11 -07:00
David Wendt 4250015420 Add query support for desktop and resolve some TODOs 2019-09-16 20:04:30 -07:00
David Wendt f00e938299 Clean up unused functionality in preparation of a PR. 2019-09-16 20:04:30 -07:00
David Wendt 65586cbcf5 Allow SWFs to open websites from the desktop 2019-09-16 20:04:30 -07:00