Commit Graph

2422 Commits

Author SHA1 Message Date
Nathan Adams 94009e4b1a web: Add credentialAllowList config option 2023-11-09 13:04:12 +01:00
Kornelius Rohrschneider 514611451f web: Set default Polyfill allowScriptAccess value to samedomain
The default allowScriptAccess value for polyfilled elements has been set
to samedomain. This means that it's true if the SWF file has the same
domain as the player website and false otherwise.
To do this, a new isPolyfillElement parameter is given to the
RufflePlayer::load method.
2023-11-08 17:09:54 +01:00
Kornelius Rohrschneider 1b2baf3364 web: Fix Ruffle extension player not using the configuration for files
The Ruffle extension player has previously not used the extension
configuration settings when loading local SWF files.
This has been fixed.
2023-11-08 17:09:54 +01:00
Kornelius Rohrschneider 8c8367a09c web: Fix Ruffle configuration not working properly for Polyfill elements
Previously, the Ruffle configuration options weren't working properly
for polyfilled elements.

A polyfilled element can have specific configuration options which
overwrite the more general Ruffle configuration settings.
But the code handling those specific configuration options has
previously set some of them to default values if they haven't been
provided, therefore overwriting the more general configuration settings.
This has been fixed. A getPolyfillOptions function has been created and
returns a URLLoadOptions object, containing only the options that have
been set for the respective element. Helper functions have been adapted
to not return any default values anymore.
getPolyfillOptions is now used in all places where polyfilled options
need to be retrieved (therefore reducing duplicated code).

Documentation has been added to clarify that these options must not
contain any default values, since those would overwrite other
configuration settings with a lower priority.
The extension and demo code has been changed to clarify that no default
values are contained in the element configuration options.

The RuffleEmbed::attributeChangedCallback method has previously loaded
an SWF file only with the parameters and base options. This has been
fixed as well since it now also uses getPolyfillOptions.

When using RuffleObject::connectedCallback to load an SWF file, setting
an element config option to "" hasn't worked for most config options
before either. This has been fixed as well by using the new
getPolyfillOptions function.

The default WindowMode value of the default Ruffle web config has been
set to Window (as it is in the desktop version and according to the
documentation). It has previously been set to Opaque (which causes the
same functionality).
2023-11-08 17:09:54 +01:00
Crowdin Bot 1c4380f633 chore: Update translations from Crowdin 2023-11-07 12:40:56 +01:00
renovate[bot] acadb2b2d3 fix(deps): update wasm-bindgen 2023-11-07 12:18:50 +01:00
Wumbo 4403848a4b
web: Extension UI improvements (#13473)
* web: Improve styling of extension pop-up menu

* web: Improve styling of extension settings page

* web: Improve styling of extension player

* web: Make styling more consistent across browsers

* web: Run eslint, fix some problems

* web: Move version text near top of pop-up menu, add to settings menu

* web: Improve logo hover bounds in pop-up and settings

* web: Improve styling of extension status indicator

* web: Update extension pop-up text strings

* web: Misc. sizing/padding changes to extension UI

* web: chore: Add a stylelint exception for #backgroundColor in player.css

Because it's not kebab-case, to match the keys of the metadata object in JS.

---------

Co-authored-by: TÖRÖK Attila <torokati44@gmail.com>
2023-11-03 23:07:25 +01:00
CUB3D b0d88645bc avm1: Implement FileReference 2023-11-03 19:32:24 +01:00
renovate[bot] 9b3df944ad chore(deps): update node.js dependencies 2023-11-01 11:18:48 +01:00
renovate[bot] 1377a5b07b fix(deps): update rust dependencies 2023-11-01 00:45:43 +01:00
Nathan Adams 5682e0101d web: Add defaultFonts config option for specifying the default _sans etc 2023-10-30 15:15:57 +01:00
Nathan Adams 857f65d077 web: Add fontSources config option for loading extra device fonts than our defaults 2023-10-30 15:15:57 +01:00
TÖRÖK Attila 7cec9ed969 chore: Add `--locked` to all `cargo build` invocations 2023-10-28 14:07:39 +02:00
TÖRÖK Attila 0c0b86c008 core,web: Replace `instant` with `web-time` 2023-10-28 03:01:45 +02:00
TÖRÖK Attila ac93947c22 web: Clean up nonsensical feature setup of the ruffle_core dependency 2023-10-28 02:34:07 +02:00
renovate[bot] 997ad1643a chore(deps): update node.js dependencies 2023-10-27 23:40:04 +02:00
Daniel Jacobs 2eeee80646 web: Switch click and pointer events to act on element and not window 2023-10-27 15:55:16 -04:00
TÖRÖK Attila c5b9239d08 nit: Fix tool name in error message of extension build
This is a fixup for https://github.com/ruffle-rs/ruffle/pull/13733.

I always confuse these things, and notice these minor mistakes an hour after merging. _Gosh hecking darn it!_
2023-10-27 20:06:39 +02:00
TÖRÖK Attila e770200dc6 web: Make the error message about a missing version seal more verbose 2023-10-27 15:58:15 +02:00
TÖRÖK Attila 4109047c20 web: Tidy up the Dockerfile for building the browser extension. Details:
- Add clang to the dependencies
- Migrate Node.js installation to their new recommended method
- Add some comments for each logical step
- Remove a redundant comment
- Remove some unnecessary semicolons
2023-10-27 15:58:15 +02:00
Crowdin Bot fd6568aa80 chore: Update translations from Crowdin 2023-10-27 00:49:17 +02:00
Daniel Jacobs 180d275f13 web: Check navigator.clipboard exists before using it 2023-10-26 13:01:55 -04:00
Daniel Jacobs 27831d7881 web: Make ruffle-player inherit pointer-events from parent 2023-10-25 17:03:44 -04:00
Crowdin Bot 1ca5f714f9 chore: Update translations from Crowdin 2023-10-23 03:21:14 +02:00
Nathan Adams 9758bf84c0 web: Exclude a bunch of internal api from the public api (including removing them from documentation) 2023-10-20 20:05:02 +02:00
Nathan Adams 14648ef0d5 web: make loadRuffle() return an instance, not a constructor 2023-10-20 20:05:02 +02:00
Nathan Adams 307f9bc820 web: Rename lastLoaded to nativeConstructor 2023-10-20 20:05:02 +02:00
Nathan Adams a9db2584c8 web: Make loadRuffle take in BaseLoadOptions, it doesn't need more complex than that 2023-10-20 20:05:02 +02:00
Crowdin Bot e6f9796094 chore: Update translations from Crowdin 2023-10-17 23:31:22 +02:00
renovate[bot] b427940431 fix(deps): update rust dependencies 2023-10-16 09:51:22 +02:00
Crowdin Bot 0127c98fdf chore: Update translations from Crowdin 2023-10-15 19:17:00 +02:00
Nathan Adams 5e3bd488f1 web: Make jpegxr optional on web but enabled by default by CI 2023-10-15 18:06:15 +02:00
Nathan Adams ec21ad8658 core: Add default_font feature which enables the fallback font 2023-10-15 14:09:21 +02:00
Nathan Adams 74a7ab5afe core: Implement device font lookup, and multiple default device fonts 2023-10-15 14:09:21 +02:00
sleepycatcoding c170c8561b web: rudimentary documentation for JS API 2023-10-15 12:00:41 +02:00
sleepycatcoding 1bfcc0a670 web: Rename wsProxy config option to socketProxy 2023-10-15 12:00:41 +02:00
sleepycatcoding d3765027f0 web: Use gloo_net instead of manually using web_sys
This relieves some headaches with on connect callback and spawning of the
sending async task, since some SWFs like to send data before the connect event
is called.
2023-10-15 12:00:41 +02:00
sleepycatcoding a067e9a5e8 web: Add wsProxy config option 2023-10-15 12:00:41 +02:00
sleepycatcoding e2cfdcc2e1 web: Close WebSocket if receiver dropped 2023-10-15 12:00:41 +02:00
sleepycatcoding 5406b9f95e web: Experimental WebSocket based backend for Sockets
This is currently untested.
2023-10-15 12:00:41 +02:00
Crowdin Bot ff2814c84f chore: Update translations from Crowdin 2023-10-12 23:13:54 +02:00
Crowdin Bot 2422793d1b chore: Update translations from Crowdin 2023-10-11 13:29:12 -04:00
Crowdin Bot 13b50fecb5 chore: Update translations from Crowdin 2023-10-09 23:10:41 +02:00
Crowdin Bot 3dc75f7ab8 chore: Update translations from Crowdin 2023-10-07 23:37:34 +02:00
Crowdin Bot 53babdd675 chore: Update translations from Crowdin 2023-10-05 23:09:23 +02:00
Adrian Wielgosik c5704ed819 Revert "web: As appropriate use embed height mentioned in Mozilla bug 810082 c65"
This reverts commit b6d0e2ecce.
2023-10-05 00:50:22 +02:00
Adrian Wielgosik 112b442ad6 Revert "web: Add comment about when a default height of 200px is used"
This reverts commit 48c7c52aa2.
2023-10-05 00:50:22 +02:00
dependabot[bot] 4f4f871cfa build(deps-dev): bump postcss from 8.4.27 to 8.4.31 in /web
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.27 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.27...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-03 23:25:59 +02:00
Crowdin Bot 965b42fd3c chore: Update translations from Crowdin 2023-10-03 23:07:54 +02:00
Daniel Jacobs 48c7c52aa2 web: Add comment about when a default height of 200px is used 2023-10-03 20:14:42 +02:00
Daniel Jacobs b6d0e2ecce web: As appropriate use embed height mentioned in Mozilla bug 810082 c65 2023-10-03 20:14:42 +02:00
Crowdin Bot 1886a5d434 chore: Update translations from Crowdin 2023-10-02 23:16:26 +02:00
Daniel Jacobs 1d3728e7ed i18n: Localize hardware accelerartion information 2023-10-02 14:21:57 -04:00
Daniel Jacobs 0158511a8e web: Display a pop-up about hardware acceleration when it's disabled 2023-10-02 14:21:57 -04:00
renovate[bot] e8da6159e4 chore(deps): update dependency chromedriver to v117 2023-10-02 13:13:07 +02:00
renovate[bot] 030e9270c5 chore(deps): update node.js dependencies 2023-10-02 13:02:30 +02:00
Crowdin Bot 58b18e282b chore: Update translations from Crowdin 2023-10-02 00:57:34 +02:00
sleepycatcoding f140e7a14b
core: Place jpegxr texture support behind feature flag (#13348) 2023-09-29 18:46:54 -04:00
Crowdin Bot bd67a5845b chore: Update translations from Crowdin 2023-09-24 12:13:31 +02:00
Crowdin Bot 5b9806bdb3 chore: Update translations from Crowdin 2023-09-19 23:41:23 +02:00
Daniel Jacobs a768399612 web: Only re-run polyfill when embed or object added to DOM 2023-09-19 20:49:27 +02:00
Daniel Jacobs 65d1ba4803 web: Switch from deprecated rules property to preferred cssRules 2023-09-18 21:28:27 +02:00
Daniel Jacobs c1f53b3253 web: Fix deletion order of dynamicStyles rules 2023-09-18 21:28:27 +02:00
Crowdin Bot 695c2ff9f5 chore: Update translations from Crowdin 2023-09-18 00:03:15 +02:00
renovate[bot] 37e2c06034 fix(deps): update rust dependencies 2023-09-18 00:00:45 +02:00
Crowdin Bot 7f416f85a8 chore: Update translations from Crowdin 2023-09-14 23:50:25 +02:00
Daniel Jacobs 33eb739ee6 web: Add width, height, and type to RufflePlayer (fix #13176) 2023-09-14 23:49:31 +02:00
Daniel Jacobs d6bc408286 web: Don't show context menu when any modal is open (fix #13096) 2023-09-08 20:26:18 +02:00
Kornelius Rohrschneider 53ba75d587 Move logarithmic volume transformation to AudioMixer
Previously, the volume transformation to adapt the volume for
logarithmic hearing has been performed in the VolumeControls Rust struct
and TypeScript class each.
Since this calculation is the same on desktop and web and should be
implemented in the audio backend, it has been moved into the
AudioMixer::mix_audio method.
The VolumeControls struct and class now only calculate the linear volume
out of the checkbox and the slider.
Player::set_volume and Player::volume now don't take and return the
adapted volume, but use the linear volume (which gets saved internally).
2023-09-07 00:51:58 +02:00
Kornelius Rohrschneider f04470247e web: Add web volume controls
The web version of Ruffle now has a volume controls window. It can be
accessed through the right-click menu (Right-click > Volume controls).
It contains a mute button and a slider from 0 to 100.

To achieve this, a new volume controls modal has been added to the
shadow template.
TypeScript is used to create texts, set the controls and add event
listeners to update the settings and controls when being changed.

The volume settings set in the GUI are saved in a new VolumeControls
class, which is also used to calculate the real volume (adapted for
logarithmic hearing) out of the entered volume and the mute checkbox.
As soon as the volume is changed in the GUI, the real volume will be set
in the Ruffle instance.

The existing ftl files have been adapted (and new ones have been
created) to include the new multilingual text in the right-click menu
and the volume controls window.

This closes #1771.
2023-09-07 00:51:58 +02:00
Crowdin Bot d195da59af chore: Update translations from Crowdin 2023-09-06 23:55:17 +02:00
Crowdin Bot 654799b1a9 chore: Update translations from Crowdin 2023-09-06 12:22:24 +02:00
renovate[bot] dabc2d56b9 fix(deps): update rust dependencies 2023-09-04 10:25:24 +02:00
Crowdin Bot 2996f97578 chore: Update translations from Crowdin 2023-09-02 15:43:08 +02:00
renovate[bot] d14550e851 chore(deps): update node.js dependencies 2023-09-02 15:19:06 +02:00
renovate[bot] cbd0c89f9b chore(deps): update npm to v10 2023-09-02 15:10:07 +02:00
Crowdin Bot cf9171cb78 chore: Update translations from Crowdin 2023-08-31 00:13:04 +02:00
renovate[bot] 4e75c3890a fix(deps): update rust dependencies 2023-08-28 07:39:35 +02:00
Crowdin Bot 378b415a3b chore: Update translations from Crowdin 2023-08-26 23:27:47 +02:00
Daniel Jacobs 18e89f6132
web: Remove all occurences of innerHTML (except in test files) (#12937)
* web: Remove most occurences of innerHTML

* web: Use helper methods for shadow template element creation

* web: Refactor createErrorFooter function

* web: Shadow template code cleanup

* web: Add helper function to add CSS rules to shadow template

---------

Co-authored-by: nosamu <71368227+n0samu@users.noreply.github.com>
2023-08-26 22:51:16 +03:00
nosamu 11a17dfb4e extension: Don't show CORS error on internal player page
The player page is not restricted by CORS
2023-08-26 11:33:56 +02:00
nosamu 3df6e13848 extension: Fix HTML structure of 'open in new tab' message 2023-08-26 11:33:56 +02:00
nosamu 7838d4549b web: Don't try to enter fullscreen if already in fullscreen & vice versa
Fixes #9615
2023-08-26 11:09:02 +03:00
nosamu b456296769 extension: Persist content script registration across sessions 2023-08-26 01:21:07 +02:00
Crowdin Bot 07c236df5b chore: Update translations from Crowdin 2023-08-26 00:27:56 +02:00
nosamu 3920eb90cd extension: Register listeners synchronously at top level of service worker 2023-08-25 23:56:52 +02:00
Crowdin Bot 3ccda582e1 chore: Update translations from Crowdin 2023-08-25 11:50:24 +02:00
Crowdin Bot 1b03ce9ae6 chore: Update translations from Crowdin 2023-08-23 23:59:54 +02:00
David Wendt 7158039135 audio: Audio streamed from FLVs do not have the SWF MP3 header 2023-08-23 15:36:20 -06:00
Crowdin Bot d55cc23f55 chore: Update translations from Crowdin 2023-08-22 23:06:46 +02:00
Daniel Jacobs acc315ebfb extension: Fix check for scripting permission 2023-08-22 22:47:28 +02:00
Daniel Jacobs eef65da345 extension: Remove unnecessary lambda functions 2023-08-22 22:17:18 +02:00
Nathan Adams 9d05a37f34 web: Make open-in-new-tab open the local player directly, and disable takeover of all SWF urls 2023-08-22 19:35:05 +02:00
Daniel Jacobs ba52438c27 extension: Fix-ups for extension player page 2023-08-22 17:50:37 +02:00
Crowdin Bot 3de4b4e989 chore: Update translations from Crowdin 2023-08-21 23:09:03 +02:00
renovate[bot] 2f4c7d2fe3 fix(deps): update rust dependencies 2023-08-21 08:59:07 +02:00
Daniel Jacobs 1a28f83229 extension: Address review feedback 2023-08-20 19:51:14 +02:00
Nathan Adams d5fa0f56ea web: Make loadedConfig private again, add reload() method instead 2023-08-20 19:51:14 +02:00
Daniel Jacobs e7df6d890e extension: Make the player page a local Ruffle demo 2023-08-20 19:51:14 +02:00
renovate[bot] 98eb789f21 chore(deps): update node.js dependencies 2023-08-19 14:37:36 +02:00
Nathan Adams cdaf06838c web: Add short_name for extension 2023-08-19 10:02:53 +02:00
Nathan Adams d21520a4c7 web: Rename extension to 'Ruffle - Flash Emulator', to increase visibility for everyone searching for 'Flash' 2023-08-19 01:11:25 +02:00
Nathan Adams 9328caa713 web: Remove webRequest permission from chrome extension 2023-08-17 08:51:57 +02:00
Crowdin Bot cad8e10f30 chore: Update translations from Crowdin 2023-08-15 00:28:29 +02:00
Nathan Adams ee8da51c6b web: Use 'chrome?.scripting' to test for direct vs indirect pluginPolyfill pmethod, as firefox pretends to be chrome here 2023-08-14 21:21:20 +02:00
Nathan Adams 49d0d417c2 web: Make firefox also use the hash for player.html swf url 2023-08-14 21:21:20 +02:00
Nathan Adams 2f9387f1ac web: Inject plugin polyfill immediately, on chrome/edge 2023-08-14 21:21:20 +02:00
Nathan Adams 7533923f9b web: Remove check for RufflePlayer in content.ts - it can't possibly ever be true 2023-08-14 21:21:20 +02:00
Nathan Adams 1ec12f0931 web: Inject polyfill via url instead of inline, on chrome/edge 2023-08-14 21:21:20 +02:00
Nathan Adams 71000dd19a web: When using manifest v3, do swf takeover using declarativeNetRequest 2023-08-14 21:21:20 +02:00
Nathan Adams 92ea9a535d web: Change manifest v3 background script to a service worker 2023-08-14 21:21:20 +02:00
Nathan Adams 5847772b58 web: Apply 'incognito' directly to the v3 manifest, instead of in a script 2023-08-14 21:21:20 +02:00
Nathan Adams c3b486f19b web: Apply 'wasm-unsafe-eval' directly to the v3 manifest, instead of in a script (and renamed from 'wasm-eval') 2023-08-14 21:21:20 +02:00
Nathan Adams 8b3ea305a5 web: Changed web_accessible_resources to an object in manifest v3 2023-08-14 21:21:20 +02:00
Nathan Adams 9ddf9b9621 web: Extract "all_urls" in manifest v3 to "host_permissions" from "permissions" 2023-08-14 21:21:20 +02:00
Nathan Adams 54be7ffacd web: Changed manifest v3 content_security_policy to an object containing extension_pages 2023-08-14 21:21:20 +02:00
Nathan Adams 22601514bc web: Rename manifest v3 browser_action to action, and removed browser_style as it's no longer an option 2023-08-14 21:21:20 +02:00
Nathan Adams 353193b3e4 web: Split manifest into firefox vs other 2023-08-14 21:21:20 +02:00
Nathan Adams 283a0694de web: Remove ruffle extension detection plugin 2023-08-14 20:51:11 +02:00
Crowdin Bot 70b43fc2ff chore: Update translations from Crowdin 2023-08-12 01:36:46 +02:00
Tom Schuster 0a55c04eaf web: Include the version in the new ruffle instance console message 2023-08-12 01:13:59 +02:00
Crowdin Bot 8e1632ab22 chore: Update translations from Crowdin 2023-08-11 10:23:54 +02:00
nosamu 5936de03e7 extension: Add exclusions for Tuxedo Computers and Taobao
Problems reported in #11906 and in a Chrome Web Store review
2023-08-09 08:34:59 +02:00
Crowdin Bot 205ef09cc6 chore: Update translations from Crowdin 2023-08-08 23:49:31 +02:00
renovate[bot] a4b179e1e0 chore(deps): lock file maintenance rust dependencies 2023-08-08 23:19:16 +02:00
Nathan Adams 9125d30e76 web: Don't store the full semver version as the version name, just construct it when needed 2023-08-08 14:33:49 -06:00
Daniel Jacobs c5aa5189e7 extension: Allow video to load from any source in internal player page 2023-08-07 14:31:33 -06:00
Daniel Jacobs 91c2d0efa4 web: Create modal to hold unsupported videos 2023-08-07 14:31:33 -06:00
Daniel Jacobs dbb5e381f2 core/desktop/web: Play unsupported videos with browser 2023-08-07 14:31:33 -06:00
TÖRÖK Attila ddc290ddf9 chore: Appease prettier. 2023-08-07 09:22:58 +03:00
renovate[bot] 863ce90d9d chore(deps): bump node.js dependencies 2023-08-07 09:22:58 +03:00
Nathan Adams 44623bf28f web: Remove extension specific code in polyfill, doesn't need to exist now 2023-08-06 23:55:39 +02:00
Nathan Adams 7a39dc9176 web: Add build date as part of version buildinfo 2023-08-06 23:55:39 +02:00
Nathan Adams 64d951099d web: Compare build ident if all else fails, when finding best versions 2023-08-06 23:55:39 +02:00
Nathan Adams ee1e8ec267 web: Extension shouldn't set options that are default 2023-08-06 23:55:39 +02:00
Nathan Adams 4f4dbc7973 web: Fix PublicAPI superseding, it previously always thought 'the latest ran' should replace the older version 2023-08-06 23:55:39 +02:00
Nathan Adams c074047551 chore: Add .idea to gitignore 2023-08-06 17:37:41 +02:00
Adrian Wielgosik c41d7d56f0 build: Reduce disk use of reproducible docker builds 2023-08-05 12:07:59 +02:00
Crowdin Bot 98c286e997 chore: Update translations from Crowdin 2023-08-04 17:18:58 +02:00
renovate[bot] 477ff400a7 chore(deps): lock file maintenance rust dependencies 2023-08-02 13:36:13 +02:00
renovate[bot] 7026adb366 chore(deps): update dependency chromedriver to v115 2023-08-01 20:41:34 +03:00
sleepycatcoding 7acc25d319 web: Update socket stub 2023-07-31 22:32:03 +02:00
Oleksandr Kalko 2c4bd5c5c7
chore: Run `npm update --save` 2023-07-30 21:12:47 +00:00
Crowdin Bot 280de7cd61 chore: Update translations from Crowdin 2023-07-27 16:39:17 +02:00
Nathan Adams 35234dccec web: Ensure we set ourselves as the FSCommand provider 2023-07-26 17:00:15 +02:00
Nathan Adams 1a0a82d898 core: Move fscommand execution outside of ExternalInterfaceProvider, so it can be implemented without causing ExternalInterface.available to become true 2023-07-26 17:00:15 +02:00
renovate[bot] 3326aef6a8 chore(deps): lock file maintenance node.js dependencies 2023-07-25 17:42:46 +02:00
renovate[bot] 3e63a88c34 chore(deps): lock file maintenance rust dependencies 2023-07-25 08:23:28 +03:00
sleepycatcoding 75672ae998 web, tests: Update connect_socket stubs 2023-07-23 09:13:01 +02:00
sleepycatcoding ed22a7a23b web, tests: remove Option for connection timeout 2023-07-23 09:13:01 +02:00