Commit Graph

331 Commits

Author SHA1 Message Date
p0008874 1d6820c55b extension: Add unlisted warn_on_unsupported_content translate + Minor fixes. 2022-12-06 20:29:13 +01:00
p0008874 55c2c5e5c5 extension: add traditional-chinese localization
Still not perfect but decent.
2022-12-05 21:04:41 +01:00
Marco Grassi bcf9badc8c add italian localization to the extension 2022-12-02 10:33:20 +01:00
relrelb b52ae03759 extension: Convert tools to ESM 2022-11-06 20:36:33 +02:00
relrelb 6dbf78ae59 web: Fix `temp-dir` upgrade
`temp-dir` 3.0.0 is now pure ESM. As such, it no longer can be `require`d.
To workaround this, use `await import` instead.

In the long-term, it might be worth converting the `sign_xpi.js`
script itself to ESM.
2022-11-03 00:37:08 +02:00
dependabot[bot] d0989f4261 build(deps-dev): bump @types/chrome from 0.0.197 to 0.0.200 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.197 to 0.0.200.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-02 00:46:45 +02:00
dependabot[bot] 804845b524 build(deps-dev): bump temp-dir from 2.0.0 to 3.0.0 in /web
Bumps [temp-dir](https://github.com/sindresorhus/temp-dir) from 2.0.0 to 3.0.0.
- [Release notes](https://github.com/sindresorhus/temp-dir/releases)
- [Commits](https://github.com/sindresorhus/temp-dir/compare/v2.0.0...v3.0.0)

---
updated-dependencies:
- dependency-name: temp-dir
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-02 00:16:26 +02:00
relrelb 178bf4fe24 chore: Extract Cargo `edition` to `[workspace.package]`
This is possible since Rust 1.64.0: https://blog.rust-lang.org/2022/09/22/Rust-1.64.0.html#cargo-improvements-workspace-inheritance-and-multi-target-builds
2022-10-14 22:13:29 +03:00
relrelb 5f1adc2bbf extension: Avoid some non-null assertions 2022-10-14 11:56:44 +03:00
nosamu 7c3ddf2492 extension: Use split incognito mode in Chrome 2022-10-04 19:26:14 +02:00
nosamu d8e8331957 Don't run on Twitch
Related to #7146. Similarly to #2158, Twitch has added similar page integrity protection, which prevents successful login when Ruffle is enabled.
2022-10-02 15:23:23 +02:00
dependabot[bot] efaa85aa4e build(deps-dev): bump ts-loader from 9.3.0 to 9.4.1 in /web
Bumps [ts-loader](https://github.com/TypeStrong/ts-loader) from 9.3.0 to 9.4.1.
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/compare/v9.3.0...9.4.1)

---
updated-dependencies:
- dependency-name: ts-loader
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 08:59:47 +03:00
dependabot[bot] bb7a4af5a9 build(deps-dev): bump @types/chrome from 0.0.196 to 0.0.197 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.196 to 0.0.197.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 07:40:08 +03:00
relrelb 696514862d extension: Migrate to TypeScript 4.8
Per https://devblogs.microsoft.com/typescript/announcing-typescript-4-8/#unconstrained-generics-no-longer-assignable-to,
`Object.entries()` no longer accepts nullable objects.
The suggested fix is to add a `T extends {}` constraint, but that's
disallowed by https://typescript-eslint.io/rules/ban-types/. So instead
change the parameter types from `T` to `NonNull<T>`.
2022-09-02 15:58:28 +03:00
dependabot[bot] 43e4e8fb61 build(deps-dev): bump typescript from 4.7.3 to 4.8.2 in /web
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.7.3 to 4.8.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.7.3...v4.8.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-02 15:58:28 +03:00
dependabot[bot] 596263b4d6 build(deps-dev): bump @types/chrome from 0.0.188 to 0.0.196 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.188 to 0.0.196.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-01 16:33:16 -07:00
nosamu c5c619abbd web: Correct IANA Flash MIME type 2022-08-29 02:49:23 -07:00
nosamu 4dc446825b extension: Check more thoroughly for SWF filenames and MIME types 2022-08-29 02:49:23 -07:00
relrelb e3831d2228 web: Disallow imports not used as values
Configure [`importsNotUsedAsValues`](https://www.typescriptlang.org/tsconfig#importsNotUsedAsValues)
to `error`, and switch from `import` to `import type` where needed.
Also remove the `strict` configuration, as it's inherited from
`@tsconfig/recommended`.
2022-08-26 17:27:29 -07:00
relrelb 7040397c3d web: Fix `sign-addon` upgrade
`sign-addon` 5.0.0 switched to ES Modules. Therefore, it no longer
can be `require`d. As a workaround, use `await import` instead.
In the long-term, it might be worth to convert the `sign_xpi.js`
script itself to ES Modules.
2022-08-03 00:44:03 +03:00
dependabot[bot] 039f33228e build(deps-dev): bump sign-addon from 4.1.0 to 5.0.0 in /web
Bumps [sign-addon](https://github.com/mozilla/sign-addon) from 4.1.0 to 5.0.0.
- [Release notes](https://github.com/mozilla/sign-addon/releases)
- [Commits](https://github.com/mozilla/sign-addon/compare/4.1.0...5.0.0)

---
updated-dependencies:
- dependency-name: sign-addon
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-03 00:44:03 +03:00
relrelb 1accf2d8f9 web: Make `SourceAPI` a singleton
As a first step towards a simpler Web API, convert `SourceAPI` from
a class to a constant object, under the assumption that `SourceAPI`
isn't a public Ruffle API and as such is safe to be changed.

As a result the different `ruffle-core` users don't need to construct
a new `SourceAPI` instance before calling `PublicAPI.negotiate()`.
2022-07-23 10:37:33 -07:00
dependabot[bot] 94bf3bdbce build(deps-dev): bump webpack-cli from 4.9.2 to 4.10.0 in /web
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.9.2 to 4.10.0.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.9.2...webpack-cli@4.10.0)

---
updated-dependencies:
- dependency-name: webpack-cli
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 00:46:28 +03:00
nosamu 680ffc3bbd
docs: Minor updates (#7264)
* docs: Minor updates to README.md

Extension builds are now output to a `dist` folder, just like all other web packages.

* docs: Minor updates to extension README

The Firefox instructions only work in Firefox Developer Edition or Nightly

* docs: Minor fixes for CONTRIBUTING.md

Omit the quotes in the RUST_LOG value, since they cause an error on Windows and are unnecessary on other platforms.
Also clarify which debugging features are activated by RUST_LOG and which are activated only when building Ruffle with `avm_debug`.

* docs: Add detail to build instructions

Add more detailed instructions for building the desktop app, as suggested by @coreybruce in #7251
2022-06-22 08:45:22 +03:00
dependabot[bot] 265c67b316 build(deps-dev): bump @types/chrome from 0.0.179 to 0.0.188 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.179 to 0.0.188.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 20:25:01 +03:00
dependabot[bot] b1151816a8 build(deps-dev): bump typescript from 4.6.4 to 4.7.3 in /web
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.6.4 to 4.7.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.6.4...v4.7.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 20:24:48 +03:00
WhosyVox 39afc7eda0 Add exclusions for sites broken by extension 2022-06-06 07:05:02 +03:00
dependabot[bot] 75b7ce9f7e build(deps-dev): bump sign-addon from 4.0.1 to 4.1.0 in /web
Bumps [sign-addon](https://github.com/mozilla/sign-addon) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/mozilla/sign-addon/releases)
- [Commits](https://github.com/mozilla/sign-addon/compare/4.0.1...4.1.0)

---
updated-dependencies:
- dependency-name: sign-addon
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 23:50:11 +03:00
dependabot[bot] 18ca791ae2 build(deps-dev): bump archiver from 5.3.0 to 5.3.1 in /web
Bumps [archiver](https://github.com/archiverjs/node-archiver) from 5.3.0 to 5.3.1.
- [Release notes](https://github.com/archiverjs/node-archiver/releases)
- [Changelog](https://github.com/archiverjs/node-archiver/blob/master/CHANGELOG.md)
- [Commits](https://github.com/archiverjs/node-archiver/compare/5.3.0...5.3.1)

---
updated-dependencies:
- dependency-name: archiver
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 23:48:39 +03:00
dependabot[bot] e4088a28d7 build(deps-dev): bump ts-loader from 9.2.6 to 9.3.0 in /web
Bumps [ts-loader](https://github.com/TypeStrong/ts-loader) from 9.2.6 to 9.3.0.
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/compare/v9.2.6...v9.3.0)

---
updated-dependencies:
- dependency-name: ts-loader
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-01 14:41:56 -07:00
dependabot[bot] 9c13cc7595 build(deps-dev): bump sign-addon from 3.11.0 to 4.0.1 in /web
Bumps [sign-addon](https://github.com/mozilla/sign-addon) from 3.11.0 to 4.0.1.
- [Release notes](https://github.com/mozilla/sign-addon/releases)
- [Commits](https://github.com/mozilla/sign-addon/compare/3.11.0...4.0.1)

---
updated-dependencies:
- dependency-name: sign-addon
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-01 13:46:23 -07:00
nosamu 20d4149fe4 extension: Check for all octet-stream MIME types
When a server returns a `.swf` file with an octet-stream MIME type, Ruffle should treat it as an SWF. Right now the extension checks specifically for the `application/octet-stream` MIME type, which leaves out servers like [MaxGames](https://farm.maxgames.com/soldier-diary-13469MTU5MA==.swf) that use the `binary/octet-stream` type instead. Check if the MIME type ends with `octet-stream` to handle both cases.
2022-04-18 09:01:10 -07:00
David Wendt 036aa2b369 chore: Prevent language servers from scanning the Safari stub binary on Windows 2022-04-12 22:14:22 -07:00
David Wendt 7418c4e788 chore: Prevent any compiler access to the Safari stub binary outside of macOS 2022-04-12 22:14:22 -07:00
David Wendt b825bf6e34 chore: cargo fmt on the stub binary 2022-04-12 22:14:22 -07:00
David Wendt 79ebcc6dd3 web: Add a crate for a stub binary that builds a Safari Web Extension 2022-04-12 22:14:22 -07:00
David Wendt 58ce66e1a3 web: Package the extension as a Safari Web Extension in the desktop build. 2022-04-12 22:14:22 -07:00
Mike Welsh 0e26fa1191 extension: Allow loading SWFs in frames (fix #6582)
If a frame directly loaded an SWF, it would not display in Ruffle.
Add `subframe` to the types intercepted by the `onHeaderReceived`
event in the background script so that Ruffle will display the SWF
in the frame.

Fixes #6582.
2022-04-03 15:17:41 -07:00
dependabot[bot] 133aa8aa5e build(deps-dev): bump json5 from 2.2.0 to 2.2.1 in /web
Bumps [json5](https://github.com/json5/json5) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/master/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v2.2.0...v2.2.1)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-02 01:01:44 +03:00
Mike Welsh ac765bd187 chore: Update copyright
I (Michael R. Welsh) assign to Ruffle LLC all rights, title, and
interest to copyrights of my personal contributions to Ruffle,
effective March 26, 2022.
2022-03-26 18:13:14 -07:00
dependabot[bot] ed9972122e build(deps-dev): bump @types/chrome from 0.0.178 to 0.0.179 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.178 to 0.0.179.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-01 22:41:18 +02:00
dependabot[bot] bd9dbf84da build(deps-dev): bump @types/chrome from 0.0.177 to 0.0.178 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.177 to 0.0.178.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-11 11:09:30 +02:00
dependabot[bot] a23836b782 build(deps-dev): bump sign-addon from 3.10.0 to 3.11.0 in /web
Bumps [sign-addon](https://github.com/mozilla/sign-addon) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/mozilla/sign-addon/releases)
- [Commits](https://github.com/mozilla/sign-addon/compare/3.10.0...3.11.0)

---
updated-dependencies:
- dependency-name: sign-addon
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-11 01:02:08 +02:00
dependabot[bot] cb4f7fc634 build(deps-dev): bump webpack-cli from 4.9.1 to 4.9.2 in /web
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.9.1 to 4.9.2.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.9.1...webpack-cli@4.9.2)

---
updated-dependencies:
- dependency-name: webpack-cli
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-11 01:01:28 +02:00
dependabot[bot] 0152a6aa34 build(deps-dev): bump typescript from 4.5.4 to 4.5.5 in /web
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.5.4 to 4.5.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.5.4...v4.5.5)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-02 09:01:19 +02:00
dependabot[bot] 0c715c369f build(deps-dev): bump sign-addon from 3.9.0 to 3.10.0 in /web
Bumps [sign-addon](https://github.com/mozilla/sign-addon) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/mozilla/sign-addon/releases)
- [Commits](https://github.com/mozilla/sign-addon/compare/3.9.0...3.10.0)

---
updated-dependencies:
- dependency-name: sign-addon
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 23:05:01 +02:00
dependabot[bot] 33ac55402a build(deps-dev): bump @types/chrome from 0.0.174 to 0.0.177 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.174 to 0.0.177.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 23:03:41 +02:00
Toad06 c14569e3d4 web: Add `refresh` method to `navigator.plugins` 2022-01-26 18:53:33 -08:00
nosamu f23c03129a
extension: URL-encode the SWF URL for the player page
When the user clicks the "Open in a new tab" button, the extension's internal `player.html` page opens, with a URL parameter `?url=[the SWF URL]`. Right now, this URL parameter is not properly encoded. This causes a problem when we get to https://github.com/ruffle-rs/ruffle/blob/master/web/packages/extension/src/player.ts#L14:
> `const swfUrl = url.searchParams.get("url");` 
Because the value "url" parameter was not properly encoded, any `&` character in the SWF URL would be interpreted as the start of a *new* parameter, instead of being part of the actual SWF URL. So anything after the first `&` symbol in the SWF URL would be chopped off.
On Itch.io Flash pages such as https://rarykos.itch.io/hug-me-im-cold, the SWF URL contains several important parameters - if they are not included, the server returns 403 Forbidden (it's a type of hotlinking protection). So when the user clicked the "Open in a new tab" button on Itch.io pages, the SWF would refuse to load in the player.
This PR fixes the problem - Itch.io SWFs load when opened in a new tab after my change is applied.
2022-01-24 19:01:11 -08:00
relrelb 479719f425 web: De-duplicate TypeScript ESLint rules
Pull them to the root config, using the `overrides` feature:
https://eslint.org/docs/user-guide/configuring/configuration-files#configuration-based-on-glob-patterns
2022-01-16 11:07:00 -08:00
relrelb 7cffddca97 extension: Fix typo
We actually append the build number (the `BUILD_ID` environment variable,
which originates from `github.run_number` in the CI), not the build date.
2022-01-12 21:24:19 -08:00
relrelb 3f8f117fd3 web: Convert .eslintrc files from JSON to YAML
YAML is shorter, more modern, readable, and flexible than JSON.
In other words, YAML >>> JSON.

Auto-converted using [`yq`](https://github.com/kislyuk/yq).
2022-01-12 20:10:00 -08:00
Mike Welsh 70bb5fa3f2 extension: Change unsafe-eval to wasm-eval in CSP
`unsafe-eval` was needed in the extension Content Security
Policy to Wasm compilation in Chrome.

This CSP setting causes the extension to get flagged in the
Mozilla Add-On Marketplace, which discourages the use of
`unsafe-eval`.

However, Chrome has a `wasm-eval` CSP setting which also allows
extensions to compile Wasm without requiring `unsafe-eval`.
Inject this into the extension manifest when building the Chrome
extension.

Eventually this may change to `wasm-unsafe-eval` as drafted by
the CSP spec and be required by all browsers.
2022-01-12 11:29:36 -08:00
TÖRÖK Attila ab69c12649 web: Build two WASM modules, with/without extensions, load the appropriate one 2022-01-12 11:29:16 -08:00
dependabot[bot] 1fd6fdca60 build(deps-dev): bump @types/chrome from 0.0.166 to 0.0.174 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.166 to 0.0.174.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-01 22:52:56 +02:00
Daniel Jacobs 5127e131bd extension: Fix base for direct swf links 2021-12-15 14:00:02 -08:00
TÖRÖK Attila cc4853236e web/extension: Allow 'data:' URLs as image src - needed by the canvas backend 2021-12-12 20:43:21 +01:00
relrelb e5617de4aa web: Suppress Webpack's size limit for .wasm files
Webpack warns on assets larger than 250KB by default. Our WebAssembly
module exceeds this limit by far (it's a few MBs).
2021-12-10 22:50:45 +02:00
dependabot[bot] a72ebd9ba3 build(deps-dev): bump @types/chrome from 0.0.165 to 0.0.166 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.165 to 0.0.166.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-04 17:12:12 +02:00
dependabot[bot] 1ffcfae78a build(deps-dev): bump @types/chrome from 0.0.164 to 0.0.165 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.164 to 0.0.165.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-02 07:11:56 +02:00
Chris Midgley 8ac19e9807
web: update everything (#5731)
* web: update everything

* chore: apply new lint corrections
2021-11-25 23:21:43 +02:00
Chris Midgley cf1d0e7624 web: remove firefox extension version restriction 2021-11-22 21:47:37 +02:00
Daniel Jacobs d86bf69a04 i18n: Add spanish tranlation for swf download option 2021-11-15 23:12:27 +02:00
Daniel Jacobs d3a5561e8f web: Give toggleable option to download swfs in extension/selfhosted 2021-11-15 23:12:27 +02:00
dependabot[bot] 9d8c7ab91c build(deps-dev): bump @types/firefox-webext-browser in /web
Bumps [@types/firefox-webext-browser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/firefox-webext-browser) from 82.0.1 to 94.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/firefox-webext-browser)

---
updated-dependencies:
- dependency-name: "@types/firefox-webext-browser"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 07:01:02 +02:00
Chris Midgley e0b2288005
dev: Set Firefox min version to try to help with signing
* dev: set min Firefox version to 91.1.0
* Revert "dev: don't even try to sign firefox ext"
2021-10-17 11:31:03 -07:00
relrelb f3a482a48f extension: Prefer functions over methods
TypeScript is more strict with functions. Fix 2 instances affected
by this change.
2021-10-02 08:58:31 +03:00
relrelb b250dd5ff1 extension: Fix popup reload tab button
Previously the popup page fetched only the `ruffleEnable` and `ruffleOptout`
options because only those appear in `popup.html`. So the remaining
options were always returned with their default value, making the popup
page think that all tabs need to be reloaded when these options have a
non-default value.

Remove the `keys` parameter of `getOptions`, and instead make it always
return all options. Adapt all usages of `getOptions`, which got simplified
by this change.
2021-10-02 08:58:31 +03:00
relrelb 7bb2b5918f extension: Simplify `utils.ts`
In some cases, extension API abstraction objects can be assigned directly
with the equivalent extension API namespace. This reduces much trivial
code that just duplicates all the needed functions.

Also, extract `promisifyStorageArea` to share duplicate code between
the conversions of `chrome.storage.local` and `chrome.storage.sync`
(though `local` is not currently used).
2021-10-02 08:58:31 +03:00
relrelb a3acdac0f9 extension: Rename `tabSettings` to `tabOptions`
This aligns with the rest of the code that uses the term "options"
rather than "settings".
2021-10-02 08:58:31 +03:00
Chris Midgley 1d34a957c3 dev: update web packages 2021-10-01 22:52:08 +03:00
dependabot[bot] 0ceb03f08d build(deps-dev): bump typescript from 4.4.2 to 4.4.3 in /web
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.4.2 to 4.4.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.4.2...v4.4.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-01 07:51:55 +03:00
dependabot[bot] 72b66944af build(deps-dev): bump ts-loader from 9.2.4 to 9.2.6 in /web
Bumps [ts-loader](https://github.com/TypeStrong/ts-loader) from 9.2.4 to 9.2.6.
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/compare/v9.2.4...v9.2.6)

---
updated-dependencies:
- dependency-name: ts-loader
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-01 07:06:40 +03:00
dependabot[bot] 4c146bc758 build(deps-dev): bump webpack-cli from 4.7.2 to 4.8.0 in /web
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.7.2 to 4.8.0.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.7.2...webpack-cli@4.8.0)

---
updated-dependencies:
- dependency-name: webpack-cli
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-30 22:34:50 +03:00
dependabot[bot] 497188fb45 build(deps-dev): bump @types/chrome from 0.0.154 to 0.0.158 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.154 to 0.0.158.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-30 22:05:47 +03:00
relrelb d5b223c1b3 extension: Add log level option 2021-09-26 07:57:37 +03:00
relrelb 0b4d6e6a1c extension: Add an option to ignore unsupported content warnings 2021-09-24 18:52:13 +03:00
relrelb bb029468ef extension: Listen for `onchange` events
For checkboxes, `click`, `onchange`, and `oninput` seem all the same,
but for other input types (e.g. dropdowns, text boxes) this matters.
2021-09-24 17:30:12 +03:00
relrelb cf3c36f306 extension: Localize label only when a translation exists
In order to not have to translate to all languages for each new option.
2021-09-24 17:30:12 +03:00
relrelb 8c19e06e5e extension: Type `utils.getOptions()` better
This disallows passing non-existent options:

```ts
utils.getOptions(["doesNotExist"]); // error
```

And also disallows using options that were not requested:

```ts
const options = utils.getOptions(["ruffleEnable"]);
options.ignoreOptout; // error
```
2021-09-24 17:30:12 +03:00
relrelb 34facdc5c2 extension: Use `Map` instead of `Record` to store option elements
This has few advantages:

* `Map` is more performant, and its keys cannot clash with builtin
JavaScript properties (e.g. `toString`).
* TypeScript has better type information about `map.keys()`, whereas
`Object.keys()` always return `string[]`.

Also, move `camelize` inside `getBooleanElements`, as it's only used
there, and unify the 2 `for` loops in `bindBooleanOptions` (iterating
`options` is wrong because it might contain options that doesn't exist
in the page).
2021-09-24 17:30:12 +03:00
relrelb bb926461a1 extension: Return a `Promise` from `injectScriptURL`
This serves 2 goals:

1. Wait for the script to be injected (when the promise is resolved),
so future `sendMessageToPage` won't happen before the script can
respond.
2. Detect errors in the script injection (when the promise is
rejected).
2021-09-24 17:30:12 +03:00
relrelb 4dfbff5f2f extension: Invert `shouldLoad` condition
This is a pure mechanical change, in order to lower the indentation
level.
2021-09-24 17:30:12 +03:00
relrelb 340837649e extension: Rename message properties
Make them short and clear:

* `uniqueMessageSuffix` -> `ID`
* `type` -> `to`
2021-09-24 17:30:12 +03:00
Chris Midgley f276712c2c dev: allow for failure of firefox signing in build nightly 2021-09-21 20:10:20 +02:00
Chris Midgley 384d04536f dev: optimize file sizes for pngs and svgs
Run pngs through optipng and svgs through svgo.
2021-09-16 02:37:11 -07:00
relrelb 2e8a177bef web: Indent using spaces in tsconfig.json 2021-09-15 00:42:17 +03:00
Mike Welsh a882f85d14 chore: Bump TypeScript config to es2017 2021-09-13 14:54:17 -07:00
relrelb 375269417f web: Set `__webpack_public_path__` in `load-ruffle.ts`
Use wasm-bindgen's built-in loader instead of relying on Webpack.
In order to still respect the `publicPath` config, set
`__webpack_public_path__` just before fetching the WebAssembly module.
This allows to no longer declare `.wasm` files as resource assets in
each `webpack.config.js`.
2021-09-08 02:25:05 -07:00
relrelb 28a155a099 web: Remove `config.publicPaths`
This simplifies the `publicPath` function and makes it useable inside
`fetchRuffle`.

Assuming `publicPaths` isn't used anywhere, this shouldn't be harmless.
2021-09-08 02:25:05 -07:00
dependabot[bot] 8b665b590d chore: Bump typescript from 4.3.4 to 4.4.2 in /web
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.3.4 to 4.4.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.3.4...v4.4.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-02 17:03:19 +03:00
relrelb 44d1677ed6 web: Allow migration to TypeScript 4.4
More info at: https://devblogs.microsoft.com/typescript/announcing-typescript-4-4/#use-unknown-catch-variables
2021-09-02 10:09:21 +03:00
dependabot[bot] ec85e18e09 chore: Bump @types/chrome from 0.0.149 to 0.0.154 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.149 to 0.0.154.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-02 00:25:13 +03:00
relrelb 74da833c58 extension: Resolve paths relative to the SWF location
In direct SWF mode, paths used to be resolved relative to the
extension URL, which is invalid. Change it to be relative to the
SWF location, using the `base` option.
2021-08-26 01:02:45 +03:00
relrelb 0fe583e723 extension: Fix warning on Firefox
Firefox doesn't know the manifest "version_name" key, so it shows
a warning when loading the extension.

So define "version_name" only for the "generic" variant, along with
a nearby cleanup of using a regular property assignment instead of
`Object.assign`.
2021-08-16 23:03:29 +03:00
Seedgou 7a0a3025ba extension: vectorize logo image 2021-08-16 18:25:33 +02:00
Adrian Wielgosik 02dd0ae463 web: add isExtension info to panic info and context menu version string 2021-08-03 17:47:42 +02:00
dependabot[bot] 8caaf22ac0 chore: Bump ts-loader from 9.2.3 to 9.2.4 in /web
Bumps [ts-loader](https://github.com/TypeStrong/ts-loader) from 9.2.3 to 9.2.4.
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/main/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/compare/v9.2.3...v9.2.4)

---
updated-dependencies:
- dependency-name: ts-loader
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-02 04:48:09 +03:00
dependabot[bot] 98b4f4c73b chore: Update @types/firefox-webext-browser requirement in /web
Updates the requirements on [@types/firefox-webext-browser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/firefox-webext-browser) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/firefox-webext-browser)

---
updated-dependencies:
- dependency-name: "@types/firefox-webext-browser"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-02 04:47:31 +03:00
dependabot[bot] ff90c132cf chore: Bump @types/chrome from 0.0.145 to 0.0.149 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.145 to 0.0.149.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

---
updated-dependencies:
- dependency-name: "@types/chrome"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-01 23:10:11 +02:00
relrelb 508f541ada Revert "web: Simplify .wasm loading"
This reverts commit 66bfff7687.
2021-07-27 11:19:55 +03:00
relrelb 66bfff7687 web: Simplify .wasm loading
Use wasm-bindgen's built-in loader instead of relying on Webpack.

This allows to no longer declare .wasm files as resource assets in
each webpack.config.js.

Also the bundled JS is a bit smaller (e.g. demo is now ~88KB vs.
~90KB before).
2021-07-24 14:18:19 -07:00
relrelb 49e26338bc web: Fix and cleanup npm build scripts
* Remove `buildProduction` as it was equivalent to `build`.
* Fix `build:avm_debug` and change it to `build:debug`, which also
disables Webpack optimizations.
2021-07-17 11:40:25 +03:00
relrelb 276e77d188 web: Cleanup tsconfig.json files
* Extend from the recommended config.
* Remove the exclude field that doesn't contribute to the file
inclusion (include alone should be enough).
* Remove the esModuleInterop field that shouldn't be necessary.
2021-07-03 21:18:42 +03:00
relrelb 558bbdb520 web: Cleanup .eslintrc.json files
* `eslint:recommended` is not needed in the each file as it already
appears in the root config.
* The default `@typescript-eslint/naming-convention` rule is preferred.
* Other formatting improvements.
2021-07-03 21:18:42 +03:00
TÖRÖK Attila a16bbcf9d0 web: Improve Hungarian translations 2021-06-20 18:45:59 -07:00
Chris Midgley 8927500489 dev: update all package.json devDependencies to latest 2021-06-20 02:21:17 -07:00
sn-o-w 41c4ac2834 i18n: Add Romanian 2021-05-19 14:49:01 -07:00
Jmousy 27bf4c5ccc i18n: Add Korean 2021-05-16 22:57:23 -07:00
Ahmet Akkoç ae038ccbb1
i18n: Update Turkish localization 2021-05-13 10:30:14 -07:00
Pablo Rodríguez 3acfb5bc29
i18n: Minor improvement in Spanish translation 2021-05-09 10:57:27 -07:00
Ahmet Akkoç d2bf69d5e6
i18n: Added Turkish localization 2021-05-08 03:14:23 -07:00
relrelb f8a8b82c04 web: Cleanup ESLint configuration
* Cleanup .eslintrc.json files.
* Avoid unnecessary eslint-* directives.
2021-04-30 18:16:55 -07:00
dependabot[bot] ea227d332a chore: Bump @types/chrome from 0.0.135 to 0.0.136 in /web
Bumps [@types/chrome](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chrome) from 0.0.135 to 0.0.136.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chrome)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-29 14:10:55 -07:00
relrelb 24dcad9546 extension: Avoid script injection in XML documents
document.xmlVersion doesn't exist in Firefox, so use another method
to detect XML documents, described in MDN:
https://developer.mozilla.org/en-US/docs/Web/API/Document/xmlVersion
2021-04-24 04:16:23 -07:00
relrelb 488e4421e9 extension: Lint after TypeScript migration 2021-04-23 16:58:13 -07:00
relrelb cfc57a2e1d extension: Complete TypeScript migration 2021-04-23 16:58:13 -07:00
relrelb b0c6cfe1d3 extension: Initial TypeScript migration 2021-04-23 16:58:13 -07:00
relrelb a157d7ab72 extension: Avoid script injection in XML documents 2021-04-22 18:05:18 -07:00
relrelb 2b71786b8b extension: Convert manifest to JSON5
JSON5 is a more flexible superset of JSON. It supports comments,
trailing commas and more nice features that JSON doesn't support.
2021-04-21 19:03:19 -07:00
relrelb 0fa24b4ce0 web: Migrate file-loader to asset modules
file-loader is deprecated and asset modules are the recommended
alternative.
2021-04-21 19:03:19 -07:00
relrelb 201c4f5db0 web: Use relative paths for webpack entries
Only output.path needs to be absolute.
2021-04-21 19:03:19 -07:00
Mike Welsh 7171628b44 ci: Append GitHub build ID instead to extension version
Appending the build date doesn't work (the Mozilla verison format
requires each numeric to be <65536). Use GITHUB_RUN_NUMBER instead,
which increases each time the workflow runs.
2021-04-16 22:17:01 -07:00
Mike Welsh 3f718e508e docs: Update Firefox add-on instructions 2021-04-16 12:31:14 -07:00
Mike Welsh 98c0146279 extension: Add build date to version in manifest
The Chrome/Firefox marketplaces require the version number of an
extension to increase with each upload, so append the build date
to the version in `manifest.json`. Add `versionName` with the more
readable version (`0.1 nightly 2010-15-04` for nightly builds).
2021-04-16 12:31:14 -07:00
Mike Welsh 100977a266 extension: Catch errors while signing the Firefox add-on
Properly catch errors from the `sign-addon` package and bail out
immediately. This will display better output from the Mozilla
validation service.
2021-04-16 12:31:14 -07:00
Mike Welsh 9e64f111c3 extension: Copy Firefox add-on after signing instead of moving
A rename will fail if the destination is on a different mount
(happened to me!). Instead, copy the file to the destination, then
delete the old file.
2021-04-16 12:31:14 -07:00
Mike Welsh 80dfefa45d extension: Add proper 128x128 icon 2021-04-16 12:31:14 -07:00
relrelb 4d2c8ec7f6 web: Set page title in player.js 2021-04-15 16:29:27 -07:00
relrelb 9021da874d web: Small improvement in player.js 2021-04-15 16:29:27 -07:00
relrelb 2fd0bb0183 web: Improve background.js 2021-04-15 16:29:27 -07:00
relrelb 54604c1be1 web: Prototype direct SWFs 2021-04-15 16:29:27 -07:00
relrelb d336926e3f web: Put Firefox-specific note in place 2021-04-15 16:21:23 -07:00
relrelb 71a17166f4 web: Rename index.js to ruffle.js 2021-04-15 13:47:07 -07:00
relrelb d86949d22f web: Refactor manifest.json 2021-04-15 13:47:07 -07:00
relrelb 1e7bd652e7 web: Update extension README.md 2021-04-15 13:47:07 -07:00
relrelb 027597039f web: Rename lv0.js to content.js 2021-04-15 13:47:07 -07:00
relrelb 0db98888b2 web: Rename extension/build/ to extension/assets/ 2021-04-15 13:47:07 -07:00
relrelb a3576da5f1 web: Unify extension/build/icons/ and extension/build/logo/ 2021-04-15 13:47:07 -07:00
relrelb 02669c0451 web: Rename extension/js/ to extension/src/ 2021-04-15 13:47:07 -07:00
relrelb 2d24afc318 web: Rename settings to options 2021-04-15 13:47:07 -07:00
relrelb 7fbae7c809 web: Appease ESLint 2021-04-11 15:04:16 -07:00
relrelb 26932c59bb extension: Remove util.js 2021-04-11 15:04:16 -07:00
relrelb 9e93b06d77 web: Refactor extension lv0.js and index.js 2021-04-11 15:04:16 -07:00
relrelb 3dc5b34706 web: Remove unused functions from util.js
As they were replaced with corresponding functions in utils.js.
The end goal is to gradually deprecate util.js, and then remove it.
2021-04-10 17:57:11 -07:00
relrelb 7b5d0b4359 web: Refactor extension settings page 2021-04-10 17:57:11 -07:00
relrelb 304d618f27 web: Refactor extension popup
This currently breaks the options page, which will be fixed in a
follow-up commit.
2021-04-10 17:57:11 -07:00
relrelb ee8b24b6fc web: Add common.css 2021-04-10 17:57:11 -07:00
relrelb 6eb5a95705 web: Add common.js 2021-04-10 17:57:11 -07:00
relrelb 2c2983236e web: Add utils.js 2021-04-10 17:57:11 -07:00