Commit Graph

701 Commits

Author SHA1 Message Date
nosamu 4dc446825b extension: Check more thoroughly for SWF filenames and MIME types 2022-08-29 02:49:23 -07:00
nosamu c83ae114b2 web: Move MIME type check to its own function 2022-08-29 02:49:23 -07:00
Daniel Jacobs 29bdd138d5 web: Don't add debug info to context menu in insecure context
It won't work anyway, since the Clipboard API doesn't work in insecure contexts.
2022-08-28 20:18:46 -07:00
EmperorBale f8289b47d8
avm2: Implement call stack & stack traces (#7564)
* avm2: Implement call stack

* avm2: Class traits should have a special prefix

* avm2: Stack tracebacks should also contain error message

* avm2: Move method naming to Executable

* avm2: Handle getter and setter methods in tracebacks

* chore: Formatting

* chore: Add comments

* avm2: Make full_name write to a string, instead of creating a new one

* core: Make GcArena publicly accessible

* core: Add Deref impl for Either type

* desktop: Add AVM2 call stack to panic message

* avm2: Prefix native methods with a `/`

* chore: Appease clippy

* avm2: Check if method actually contains bytecode instead of unwrapping

* web: Add AVM2 stack trace to panic message

* chore: Formatting

* chore: Clippy

* avm2: Fix stack traces for free standing functions

* core: Remove global data from context

* core: Rename GcGlobalData to GcCallstack

* core: Introduce StaticCallstack, make GcArena private again

Co-authored-by: Adrian Wielgosik <4729533+adrian17@users.noreply.github.com>
2022-08-28 18:30:20 +02: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
Daniel Jacobs c008cc4dea web: Add debug info context menu item 2022-08-26 16:13:55 -07:00
Adrian Wielgosik b18329c8fe web: Allow modifying player volume via JS 2022-08-20 11:53:42 -07:00
Daniel Jacobs c2354c1a30 demo: Make open-modal kebab-case 2022-08-19 16:20:06 -07:00
Daniel Jacobs d8ed2f0d01 demo: Address feedback for metadata color scheme and icon placement 2022-08-19 16:20:06 -07:00
Daniel Jacobs a2968e6ecb demo: Use switch statement instead of branches 2022-08-19 16:20:06 -07:00
Daniel Jacobs 7343acf65b demo: Replace division & Math.round with bitshift (acts like Math.floor) 2022-08-19 16:20:06 -07:00
Daniel Jacobs 86f0813a79 demo: Use Object.entries for simpler code 2022-08-19 16:20:06 -07:00
Daniel Jacobs 9bd1a8c940 demo: Ensure metadata does not overflow 320 x 320 screen 2022-08-19 16:20:06 -07:00
Daniel Jacobs 92a4d7c831 demo: Add uncompressedLength to metadata on demo page 2022-08-19 16:20:06 -07:00
Daniel Jacobs 42cf08d578 demo: Show metadata on information icon click 2022-08-19 16:20:06 -07:00
Daniel Jacobs 75becaf3ba demo: Add metadata to status bar on the page 2022-08-19 16:20:06 -07:00
Daniel Jacobs 992e34764e web: Fix metadata test by adding uncompressedLength 2022-08-03 09:17:24 +03:00
Daniel Jacobs 7105c1e803 web: Clarify uncompressed length is in bytes in metadata 2022-08-03 09:17:24 +03:00
Daniel Jacobs ce95f01de3 web: Include uncompressed length of SWF in metadata 2022-08-03 09:17:24 +03: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
dependabot[bot] 0597ee3999 build(deps-dev): bump @typescript-eslint/parser in /web
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.30.3 to 5.32.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.32.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 17:46:11 +03:00
dependabot[bot] 2a47857c1a build(deps-dev): bump eslint from 8.18.0 to 8.21.0 in /web
Bumps [eslint](https://github.com/eslint/eslint) from 8.18.0 to 8.21.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.18.0...v8.21.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 16:12:30 +03:00
dependabot[bot] ce932c83a5 build(deps-dev): bump typedoc from 0.23.3 to 0.23.10 in /web
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.23.3 to 0.23.10.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.23.3...v0.23.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 15:05:09 +03:00
dependabot[bot] 1a5a253be8 build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 5.27.1 to 5.32.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.32.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 14:30:09 +03:00
dependabot[bot] 9d7651af28 build(deps-dev): bump eslint-plugin-jsdoc from 39.3.2 to 39.3.4 in /web
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 39.3.2 to 39.3.4.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v39.3.2...v39.3.4)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 12:15:35 +03:00
Mike Welsh 9e96b075d1 ci: Build web tests with --all-features 2022-07-30 19:07:39 +02:00
Mike Welsh 9fb46c71ad web: Use `AudioBufferSourceNode` for web audio
On web:
 * Mix audio on the Rust side, piping to `AudioBufferSourceNode`.
 * Decode MP3 using `symphonia`.
2022-07-28 21:25:33 -07: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
nosamu 01c8c38762 web: Hide loading screen when root movie download fails 2022-07-20 19:55:12 +03:00
Daniel Jacobs 56adcc5665
web: Add a loading screen (#7396)
* web: Add a loading screen

* web: Workaround sometimes overwitten remove method

* web: Completely remove exact px values from preloader

* web: Add meaningless loading animation to preloader

* web: Make preloader position relative

* web: Minor preloader CSS changes

* web: Don't change autoplay/unmuteOverlay showing logic

* demo: Use preloader-background for demo

* web: Don't fully remove preloader

* web: Hide preloader loading bar if there's no content-length

* web: Fix typo in load-ruffle

* web: Show/hide playButton and unmuteOverlay based on preloader state

* web: Address preloader feedback

* web: Revert ESLint change

* web: Remove unneeded optional chaining

* web: Change load option from hasPreloader to preloader

* web: Address some preloader feedback

* web: Change margin-bottom for preloader loading anim

* web: Simplify preloader conditional

* web: Show/hide full container when hiding/showing preloader

* web: Make preloader full-size
2022-07-19 22:20:53 +03:00
nosamu 245b55a832 chore: Fix lint 2022-07-13 20:36:52 -07:00
nosamu 7c55a14c36 demo: Update swfs.json example 2022-07-13 20:36:52 -07:00
nosamu 320f84dc88 demo: Improve Sample SWF dropdown 2022-07-13 20:36:52 -07:00
nosamu a31dd2e101 Revert "web: Add a loading screen"
This reverts commit bec0710175.
2022-07-11 19:05:52 +02:00
nosamu 47d9c5220a Revert "web: Workaround sometimes overwitten remove method"
This reverts commit ed4f0b98b2.
2022-07-11 19:05:52 +02:00
nosamu 478c69f846 Revert "web: Completely remove exact px values from preloader"
This reverts commit 2c067fe5dd.
2022-07-11 19:05:52 +02:00
nosamu d79e45e49e Revert "web: Add meaningless loading animation to preloader"
This reverts commit c48ca2874b.
2022-07-11 19:05:52 +02:00
nosamu 7c522f2d66 Revert "web: Make preloader position relative"
This reverts commit ded77ab46a.
2022-07-11 19:05:52 +02:00
Daniel Jacobs ded77ab46a web: Make preloader position relative 2022-07-10 13:30:42 -07:00
Daniel Jacobs c48ca2874b web: Add meaningless loading animation to preloader 2022-07-10 13:30:42 -07:00
Daniel Jacobs 2c067fe5dd web: Completely remove exact px values from preloader 2022-07-10 13:30:42 -07:00
Daniel Jacobs ed4f0b98b2 web: Workaround sometimes overwitten remove method 2022-07-10 13:30:42 -07:00
Daniel Jacobs bec0710175 web: Add a loading screen 2022-07-10 13:30:42 -07:00
nosamu 7fa35f2a82 web: Construct relative SWF URLs using document base 2022-07-07 08:58:04 +03:00
dependabot[bot] 79a341d106 build(deps-dev): bump typedoc from 0.22.17 to 0.23.3 in /web
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.17 to 0.23.3.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.22.17...v0.23.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 01:25:17 +03:00
dependabot[bot] 1cc3660924 build(deps-dev): bump eslint from 8.17.0 to 8.18.0 in /web
Bumps [eslint](https://github.com/eslint/eslint) from 8.17.0 to 8.18.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.17.0...v8.18.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 00:46:40 +03: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
dependabot[bot] 3cc38eec1e build(deps-dev): bump @typescript-eslint/parser in /web
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.27.0 to 5.30.3.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.30.3/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:33:11 +03:00
dependabot[bot] ffee0deeac build(deps-dev): bump webpack-dev-server from 4.9.1 to 4.9.3 in /web
Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.9.1 to 4.9.3.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.9.1...v4.9.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 23:32:49 +03:00