Commit Graph

2101 Commits

Author SHA1 Message Date
Daniel Jacobs 256c2fe75c web: No context menu on iOS if finger moves too far on long-press
Co-authored-by: n0samu <71368227+n0samu@users.noreply.github.com>
2023-04-22 08:57:47 +02:00
Daniel Jacobs ebb14a7ab6 web: Use div element for save manager to support browsers without dialog 2023-04-21 17:28:07 +02:00
relrelb 58821163b0 web: Update current Node.js version
Per https://nodejs.org/en/about/releases/:

* Node.js 19 became "maintenance" on April 1st.
* Node.js 20 became "current" on April 18th, and will become "active LTS" on October 24th.

In order prepare for potentially breaking changes, update the tested Node.js versions from 18 and
19 to 18 and 20.

By the way, refer to JDK 20 installation, which is the latest release.
2023-04-21 16:00:17 +02:00
yangyangdaji 978650a379
i18n: Update Simplified Chinese translation
Signed-off-by: yangyangdaji <1504305527@qq.com>
Co-authored-by: urain39 <urain39@qq.com>
2023-04-21 13:49:19 +00:00
nosamu 3614437498 web: Don't duplicate context menu separators 2023-04-18 22:01:09 +02:00
nosamu ec452d91bd demo: Use forceScale option 2023-04-18 21:43:38 +02:00
p0008874 e8aa620767 i18n: Update zh-tw 2023-04-16 22:14:37 +02:00
Daniel Jacobs ddb45f2cc2 extension: Add autostart to toggle splashScreen/autoplay/unmuteOverlay 2023-04-14 22:08:23 +02:00
nosamu 76d172b5c5 docs: Fix WindowMode doc comment 2023-04-13 19:54:32 +02:00
relrelb 3ec473d36f extension: Check tools using TypeScript
This would have caught #10351.
2023-04-06 18:41:36 +03:00
yangyangdaji bc1612ae38
extension: Update simplified Chinese translation
Co-authored-by: ForeverInfinity <79129834+ForeverInfinity@users.noreply.github.com>
2023-04-06 12:52:35 +03:00
David Wendt 42a56d88a3 web: Split Firefox extension upload into a separate process that submits whatever the latest extension is 2023-04-04 20:58:28 -07:00
Lord-McSweeney 5af0eda375 web: Avoid triggering cloudflare checks
mimeTypes.item() and plugins.item() should wrap around 2^32.
2023-04-04 20:32:44 -07:00
nosamu e9a030de54 web: Use serde rename_all rule
Cuts down on some needless verbosity.
2023-04-04 16:51:38 -07:00
renovate[bot] cd3ad90d61 chore(deps): lock file maintenance rust dependencies 2023-04-02 22:00:49 -07:00
Toad06 35528913bf core: Make `ExternalInterface` support undefined values 2023-04-02 13:48:14 -07:00
Toad06 5e14aabed6 core: Make `ExternalInterface` support undefined values in browsers 2023-04-02 13:48:14 -07:00
relrelb d9feadce00 web: Run `npm run format`
In order to fix Stylelint's new `media-feature-range-notation` rule:
https://stylelint.io/user-guide/rules/media-feature-range-notation/
2023-04-01 13:11:23 +03:00
relrelb 479926cdba web: Migrate to TypeScript 5.0.0
Work around the newly introduced `--verbatimModuleSyntax` flag:
https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#verbatimmodulesyntax
2023-04-01 13:11:23 +03:00
renovate[bot] 0e887411cc chore(deps): update node.js dependencies 2023-04-01 13:11:23 +03:00
Daniel Jacobs 4c50e2c271 demo: Add option to reload the current SWF 2023-04-01 01:46:03 -07:00
Daniel Jacobs f02e4a71d6 web: Give proper precedence to extension config when it is used 2023-03-31 03:03:11 -07:00
relrelb 798588dd94 extension: Disallow content script to import `ruffle-core`
Use the `@typescript-eslint/no-restricted-imports` rule in order to
prevent #10422 from regressing. Ideally we wouldn't need to specify
each dependency of `content.ts` (i.e. `utils.ts` and `common.ts`),
but I haven't found any better way.
2023-03-30 01:08:13 +03:00
relrelb b0eb1057f1 web: Run `npm run format` 2023-03-28 23:43:02 +03:00
renovate[bot] a7ffae1453 chore(deps): lock file maintenance node.js dependencies 2023-03-28 23:43:02 +03:00
nosamu e19f63c3c6 web: Small CSS fixups for save manager 2023-03-28 10:37:59 +03:00
Lord-McSweeney eacb4498fb web: Fix XML document detection 2023-03-28 09:13:10 +03:00
Mike Welsh 7d75f9ecf8 chore: Always rebuild TypeScript
Pass `--force` to tsc to always force a recompile of the
TypeScript on build.

`tsc` won't rebuild files if the source hasn't changed, but we
want `build-info.js` to always be updated.
2023-03-26 09:52:37 -07:00
Daniel Jacobs b7c20a6c60 extension: Give precedence to toggles over default options (fixes #5825)
Also fixes #5696
2023-03-25 22:57:57 -07:00
relrelb c68a4b0099 web: Remove deprecated `indentation` Stylelint rule
Stylelint 15.0.0 deprecated `indentation`: https://stylelint.io/migration-guide/to-15
Prettier already enforces indentation, so it can be removed from
`.stylelintrc.yaml`.
2023-03-25 10:16:49 +03:00
relrelb 3c69bb27db web: Enforce ESLint's `spaced-comment` rule 2023-03-25 10:03:55 +03:00
relrelb 39b53c76d6 ci: Deny warnings on Web
As suggested in https://github.com/ruffle-rs/ruffle/pull/6935#pullrequestreview-967181111.
2023-03-24 19:16:32 -07:00
David Wendt 37e1bdb43a chore: `Promise.all` needs an array 2023-03-24 20:03:11 -06:00
Daniel Jacobs 2ced2d2300 web: Don't polyfill with self-hosted Ruffle while extension is loading 2023-03-24 17:58:54 -07:00
Wumbo f6a139235b web: Increase spacing between Ruffle logo and options 2023-03-25 00:27:06 +03:00
Wumbo 8d56c8b7ad web: Change Ruffle logo hover animation 2023-03-25 00:27:06 +03:00
Wumbo 07a09d3204 web: Improve styling of nightly watermark in extension menu 2023-03-25 00:27:06 +03:00
nosamu f97827ef9c web: Display config parse errors 2023-03-22 16:51:55 -07:00
TÖRÖK Attila f8ea7acb14 web/audio: nit: Rename probation_time to probation_elapsed everywhere 2023-03-22 16:14:55 -07:00
renovate[bot] d7c842a139 chore(deps): lock file maintenance rust dependencies 2023-03-21 14:27:27 +01:00
Daniel Jacobs 9832ee5845 web: Remove else from save manager, unneeded with early return 2023-03-21 08:47:16 +01:00
Daniel Jacobs fe17ca8832 web: Don't replace save if user does not confirm needed reload 2023-03-21 08:47:16 +01:00
Daniel Jacobs f123b5e50c web: Don't break Ruffle when localStorage is unavailable 2023-03-21 08:47:16 +01:00
Daniel Jacobs d2e7d8ba7a web: Improve save manager styling 2023-03-21 08:47:16 +01:00
Daniel Jacobs 0cbfaf4a3e Add confirmation for delete and reload content for delete conflict 2023-03-21 08:47:16 +01:00
Daniel Jacobs 92618f6894 web: Alow download sol to work on extension page by avoiding fetch 2023-03-21 08:47:16 +01:00
Daniel Jacobs 9671f7ccac web: Close Save Manager when clicking outside of it 2023-03-21 08:47:16 +01:00
Daniel Jacobs 509d273073 web: Make all save manager functions private 2023-03-21 08:47:16 +01:00
Daniel Jacobs ef3220e77d web: Only accept sol files in save manager 2023-03-21 08:47:16 +01:00
Daniel Jacobs 320edd3c0f web: Allow duplicate key replacement to reload page 2023-03-21 08:47:16 +01:00
Daniel Jacobs 10f35781fc web: Add title text to save table keys in case of name duplicates 2023-03-21 08:47:16 +01:00
Daniel Jacobs f71723c082 web: Only show context menu item for save manager when saves exist 2023-03-21 08:47:16 +01:00
Daniel Jacobs 94ff2891e9 web: Don't allow arbitrary upload of save files for technical reasons 2023-03-21 08:47:16 +01:00
Daniel Jacobs 54ad95beb3 web: Make save manager completely functional 2023-03-21 08:47:16 +01:00
Daniel Jacobs 824cc1689c web: [WIP] Add Save Manager to context menu 2023-03-21 08:47:16 +01:00
renovate[bot] f6f646a756 chore(deps): lock file maintenance rust dependencies 2023-03-19 19:45:30 -07:00
David Wendt 1a266bafeb web: Fix extension source code upload (again) 2023-03-19 14:08:28 -07:00
MrCheeze 9e71ea9124 web: Allow ExternalInterface.call to call methods of primitive types (close #9105) 2023-03-19 07:18:01 +01:00
relrelb 156c76cb94 web: Simplify custom context menu separators logic
Instead deduplicating separators in `RufflePlayer.showContextMenu()`
using DOM attributes, do it right in `RufflePlayer.contextMenuItems()`,
using a simpler approach.
2023-03-18 02:10:08 -07:00
TÖRÖK Attila 63a1689c07 web/audio: Require quick fills for a fixed amount of time before shrinking buffers
Instead of a fixed number of buffer fills, which changes wildly in duration.
2023-03-16 05:28:13 +01:00
TÖRÖK Attila 6f9532e322 web/audio: Introduce a warmup period to not increase buffer size right at startup 2023-03-16 05:28:13 +01:00
Nathan Adams 1bb8515d85 chore: Update avm2 compatibility warning to be less severe 2023-03-15 15:30:25 -07:00
Daniel Jacobs 5a1b43008b web: Remove Config object; it was never a correct type for the config 2023-03-15 11:45:00 +01:00
Oleksandr Kalko 1b3f23a750 chore: Upgrade Node.js dependencies 2023-03-12 23:36:09 +01:00
TÖRÖK Attila 3a8ee003e4 web/audio: Make buffer size adaptive 2023-03-11 22:34:54 +01:00
Oleksandr Kalko e16ff7d677 web: Remove `stylelint-config-prettier` package
From package npm page:

> As of Stylelint v15 all style-related rules have been deprecated. If you are using v15 or higher and are not making use of these deprecated rules, this plugin is no longer necessary.

Stylelint was upgraded to 15.0.0 on 68078dc commit
2023-03-11 13:34:14 +01:00
David Wendt 6fd6279344 web: Fix copy-pasted code that breaks in sign_xpi.js 2023-03-10 18:09:58 -07:00
David Wendt f4354a638e web: Remove the find-the-version-ID extra step and use the version number directly
Mozilla actually added this feature in the middle of me building out this PR. How handy!
2023-03-10 16:38:01 -07:00
David Wendt e276b8cedb web: Since we don't get version IDs for newly-submitted extensions, search the Mozilla API for the given version instead. 2023-03-10 16:38:01 -07:00
David Wendt a39036102d web: First attempt at hacking in source code upload to Mozilla's signing tool.
We're abusing their v4 API implementation to make v5 API requests, which might not work; hopefully the authentication scheme is the same.

Furthermore, I'm assuming that the v4 sign response gives you a version ID that is valid for v5 `/addons/addon` requests.
2023-03-10 16:38:01 -07:00
Oleksandr Kalko aca4b03c0b chore: Run `npm audit fix`
npm update causes dependency conflict
This gets rid of vulnerability warning after `npm install`
2023-03-07 18:25:55 +01:00
renovate[bot] 68078dcccc chore(deps): update node.js dependencies 2023-03-06 21:56:57 +01:00
Nathan Adams 806c0fe052 web: Only report log events to browser timing api if new `profiling` feature is enabled 2023-03-05 10:29:17 +01:00
Nathan Adams 25db37790c web: Also set up logging for Buffer::play() 2023-03-05 10:29:17 +01:00
Nathan Adams b38dbadad6 web: Fixed missing logs when using `log` 2023-03-05 10:29:17 +01:00
Nathan Adams d213bc6f7f web: Make sure we set the log subscriber in futures 2023-03-05 10:29:17 +01:00
Daniel Jacobs 5944bae33b web: Log a message when the preloader configuration option is false 2023-03-02 10:51:36 +02:00
Daniel Jacobs 3051e66960 web: Mark shadow-DOM elements as readonly 2023-03-02 10:51:36 +02:00
Daniel Jacobs a63f520449 web: Change preloader name while keeping old name for compatibility 2023-03-02 10:51:36 +02:00
Nathan Adams b10d4876d3 web: Add compatibilityRules config option to disable all compatibility rules 2023-03-01 21:25:19 +01:00
Nathan Adams ef42a391f5 core: Add default_compatibility_rules as a feature, and document when we add rules 2023-03-01 21:25:19 +01:00
Daniel Jacobs c891a82440 web: Don't focus inside setTimeout on iOS and don't fire unneeded events 2023-03-01 08:15:58 +02:00
Daniel Jacobs 584cb4c1cf web/ui: Open the virtual keyboard when clicking an editable EditText 2023-03-01 08:15:58 +02:00
Daniel Jacobs b9b1fa4f8d web: Add context menu item to show virtual keyboard
Co-authored-by: n42k <pedro@amaro.sh>
2023-03-01 08:15:58 +02:00
relrelb b3fd1a47c6 core: Require `SwfMovie::url` 2023-02-28 19:05:20 +02:00
relrelb e6f09d5adb web: Use `#[wasm_bindgen(raw_module)]`
Since relative paths in `#[wasm_bindgen(module)]` aren't supported.
Also omit the file extension as it's not required.
2023-02-28 18:50:36 +02:00
relrelb 8ff8b32f7b web: Use `js_sys::Error`
Instead of declaring it ourselves.
2023-02-28 18:50:36 +02:00
Toad06 df309ba4cd web: Fix broken extensions 2023-02-27 12:19:13 +02:00
p0008874 23192b4149
i18n: Update zh-tw (#9749) 2023-02-26 23:02:10 +02:00
creeper-0910 7a029af2f4 Added translation of settings screen 2023-02-26 16:08:42 +02:00
creeper-0910 a36ef7fd0c Update Japanese locale files 2023-02-25 17:08:32 +02:00
relrelb 3f412a54b6 web: Wrap "comments" in `package.json` to a maximum of 100 characters per line 2023-02-25 16:18:38 +02:00
relrelb 1592d26afe web: Take advantage of npm pre & post scripts
To logically separate between WebAssembly (pre)build, TypeScript
build, and `set_version.js` postbuild.
More info at: https://docs.npmjs.com/cli/v9/using-npm/scripts#pre--post-scripts
2023-02-25 16:18:38 +02:00
relrelb f181794b46 web: Rename some scripts to improve clarity
* `build:ruffle_web` -> `build:wasm-vanilla`
* `build:ruffle_web-wasm_extensions*` -> `build:wasm-extensions*`
* `build:cargo_bindgen_opt` -> `build:wasm`
2023-02-25 16:18:38 +02:00
relrelb 17ac6c79d3 web: Reduce script duplication
By introducing the `$WASM_BINDGEN_FLAGS` and `$WASM_OPT_FLAGS`
environment variables, similarly to what already done with `$CARGO_FLAGS`.
2023-02-25 16:18:38 +02:00
relrelb 3035dd7161 web: Use `Closure::new()`
`Closure::new()` works on stable Rust since wasm-bindgen 0.2.81.
Use it in place of `Closure::wrap()` for more concise code.
2023-02-25 11:20:10 +02:00
relrelb 79cc42c739 web: Use TypeScript project references
This slightly improves TypeScript build times, and allows LSP to work
across packages without building `ruffle-core`.

Official documentation at:
https://www.typescriptlang.org/docs/handbook/project-references.html
2023-02-25 02:00:23 +02:00
relrelb 9f8419a145 web: Change `ruffle-core` output directory to `dist`
This aligns with the other packages.
2023-02-24 12:43:01 +02:00
Daniel Jacobs bcbf8c9108
web: Allow context menu to work on iOS using PointerEvents (#9598)
Co-authored-by: nosamu <71368227+n0samu@users.noreply.github.com>
2023-02-23 12:47:08 +02:00
relrelb 52e395ecca extension: Use `@tsconfig/strictest` 2023-02-22 21:39:12 +02:00
relrelb 140e1fcfee web: Use `@tsconfig/strictest` 2023-02-22 21:39:12 +02:00
nosamu 70bf0a816a core: Add options to set and force stage scale mode 2023-02-22 12:13:20 +02:00
relrelb 94db943743 web: Enforce ESLint's `prefer-const` rule 2023-02-19 14:09:43 +02:00
relrelb 1581123284 web: Miscellaneous tiny cleanups 2023-02-18 16:35:59 +02:00
relrelb a7f41f4df5 web: Add missing access modifiers 2023-02-18 16:35:59 +02:00
relrelb b36643f52d web: Cleanup some comments 2023-02-18 16:35:59 +02:00
relrelb 903f8bc33a web: Enforce ESLint's `no-constructor-return` rule 2023-02-18 16:35:59 +02:00
relrelb f68542991f web: Enforce ESLint's `curly` rule 2023-02-18 16:35:59 +02:00
relrelb 87ecbcc066 web: Remove `InternalContextMenuItem` type
Simply declare it inline.
2023-02-18 16:35:59 +02:00
David Wendt cc7d160d07 web: Automatically inject plugin-polyfill.ts into content.ts as a string.
The prior version of this code used a hardcoded copy of the script. Not only is this an outdated version of the code, this also caused us to fail our addons.mozilla.org audit.
2023-02-15 21:27:14 -07:00
David Wendt efc6254366 web: Build a separate plugin polyfill target file.
A future commit will add a mechanism to inject this into `content.ts` in lieu of the old copy of this file.
2023-02-15 21:27:14 -07:00
David Wendt 85f544a6cc web: Break out all the Flash identifier strings into a separate module and make `plugin-polyfill.ts` only import that. 2023-02-15 21:27:14 -07:00
David Wendt e6b9eb7df9 web: Extension build needs to seal the Firefox extension ID. 2023-02-14 18:49:58 -07:00
renovate[bot] a27bd66b58 fix(deps): update rust dependency patches 2023-02-13 04:59:31 +01:00
Aaron Hill c597f9f996 core: Fix Clippy lints on nightly 2023-02-13 03:38:54 +01:00
Nathan Adams d6abf24a81 chore: Update docs andf actions to wasm-bindgen-cli 0.2.84 2023-02-13 02:57:52 +01:00
renovate[bot] fed24aa243 fix(deps): update rust dependencies - wasm-bindgen related 2023-02-13 02:57:52 +01:00
Aaron Hill 4e0dce2efa core: Make SandboxType configurable, and set to 'remote' on web
The Newgrounds API checks `Security.sandboxType` to see if it should
run in debug mode or not (which determines whether or not medals
can actually be unlocked).

For now, desktop continues to use `localTrusted` as the default,
while web now uses `remote`. We might want to make this configurable
at some point, but this should be good enough for now (and better
match Flash's behavior).
2023-02-11 14:44:11 -06:00
Nathan Adams 6fbdbd8c72 web: Removed old sample_count default 2023-02-06 16:08:04 +01:00
Nathan Adams a220703618 core: Made PlayerBuilder take quality instead of setting it after the Player was made 2023-02-06 16:08:04 +01:00
Nathan Adams 12bd38b338 core: Changed Player::set_quality to take in a StageQuality directly 2023-02-06 16:08:04 +01:00
renovate[bot] 7c46fb207b chore(deps): update dependency @types/chrome to ^0.0.212 2023-02-04 15:19:58 +01:00
David Wendt d448809f6c web: Docker builds should also use the reproducible pipeline. 2023-02-02 20:00:42 -07:00
hanshenrik 120e80603c install wasm-opt from Conda 2023-02-02 19:34:52 -07:00
divinity76 4fcd6fe47e nitpicking
- setup_lts.x already run `apt-get update` internally so it's a waste of time to run it manually afterwards.
- the wget url wasn't quoted properly. incidentally the url doesn't actually need quoting anyway, which is why it wasn't caught.
- misc
2023-02-02 19:34:52 -07:00
divinity76 4734e542db ugly hack to re-try binaryen download if its 404!?
shouldn't really happen, shouldn't really be required, but..
2023-02-02 19:34:52 -07:00
divinity76 2621044669 manually install binaryen v111
Ubuntu 22.04's default binaryen is too old (105)
2023-02-02 19:34:52 -07:00
divinity76 6ddc19a417 add back git
ref https://github.com/ruffle-rs/ruffle/pull/9121#issuecomment-1384525188
2023-02-02 19:34:52 -07:00
divinity76 cc3ec8a795 derp 2023-02-02 19:34:52 -07:00
divinity76 61ad5307f7 Dockerfile make dual-wasm optimized build
- compiling from Docker is a slow way to compile anyway (because "COPY . ruffle" and "npm install" is un-cached, and virtualization overhead), so people who want minimal compilation time shouldn't use Docker compile anyway. (switching to :dual-wasm increased build time from 8m20s to 11m10s on my ancient 2011 server, 4x xeon E7-4870)
- seems "docker cp" does not actually overwrite the firefox_unsiged.xpi file if it already exists, for reasons unclear to me, so i added "rm -rf" to the sample invocation
- git wasn't actually used in docker build process, removed git from apt-get (rustup use the git protocol internally but doesn't seem to use the actual git executable)
2023-02-02 19:34:52 -07:00
David Wendt 4c8b225ddd web: Version seal needs to run inside `npm` in order to get a version number 2023-01-31 15:57:30 +01:00
David Wendt 6ad6912309 web: Seal version data in the extension manifest, too. 2023-01-30 17:58:57 +01:00
nosamu cfa3363416 web: Construct SwfMovie with spoofed URL when loaded from data 2023-01-29 17:55:55 +01:00
CUB3D 56fd9adbf9 web: Add key code for NumpadEnter 2023-01-24 22:12:32 -06:00
David Wendt d280d44eed chore: JS-side lints 2023-01-23 10:40:26 +01:00
David Wendt 77bfade934 core: Allow storing build info in a JSON file for reproducible builds. 2023-01-23 10:40:26 +01:00
Aaron Hill 8717aff938 web: Split out npm build of 'ruffle-core' from other npm modules
Running 'npm run build --workspaces' will run the 'build' script for all
workspaces, even if one fails. Since all of the other workspaces depend
on 'ruffle-core', running them after a ruffle-core build failure just
produces useless errors in the CI logs.
2023-01-21 16:15:19 -05:00
Nathan Adams 5878bb0c5d web: Enable wgpu-webgl by default 2023-01-16 23:33:49 +01:00
Nathan Adams 4117eece3b web: Indicate when we used cached debug info 2023-01-16 23:18:42 +01:00
Nathan Adams 6f967d4b3c web: Cache the output of render debug info in case of panics 2023-01-16 23:18:42 +01:00
Lord-McSweeney d849e98902 Fix web/src/lib.rs typo (plaver_version) 2023-01-16 17:49:24 +01:00
Lord-McSweeney 8cef9b65a1 Fix playerVerion misspelling
...and also add punctuation to docs.
2023-01-16 17:49:24 +01:00
Lord-McSweeney 4049acee66 Update config.ts 2023-01-16 17:49:24 +01:00
Nathan Adams 42cbd72e3a chore(deps): Update base64 from 0.20.0 to 0.21.0 2023-01-10 16:06:10 +01:00
nosamu 21c65252f5 web: Warn about root movie fetch over file protocol 2023-01-10 13:34:06 +01:00
CUB3D 11982c6d7d web: Allow specifying player version 2023-01-10 13:13:30 +01:00
Nathan Adams 073da83568 web: Disallow unwrap() and unwrap_err() in web crate 2023-01-10 11:10:46 +01:00
Nathan Adams 9d3adfd170 web: Removed unwraps in navigator backend 2023-01-10 11:10:46 +01:00
Nathan Adams 9e16a9f75c web: Removed unwraps in audio backend 2023-01-10 11:10:46 +01:00
Nathan Adams 72a7b2a34d web: Removed unwraps in safari extension 2023-01-10 11:10:46 +01:00