Commit Graph

228 Commits

Author SHA1 Message Date
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