Commit Graph

2298 Commits

Author SHA1 Message Date
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
sleepycatcoding 486c0ca149 web, tests: Ignore timeout parameter 2023-07-23 09:13:01 +02:00
sleepycatcoding 0699c34881 chore: Fmt 2023-07-23 09:13:01 +02:00
sleepycatcoding e59dd9a8ef web, tests: fix connect_socket stubs 2023-07-23 09:13:01 +02:00
sleepycatcoding ff1a9bb083 web: Stub connect_socket() 2023-07-23 09:13:01 +02:00
Nathan Adams e610c9a9ce web: Readd warnOnUnsupportedContent for backwards compatibility, but mark it deprecated and unused 2023-07-22 23:08:42 +02:00
Nathan Adams 586c3bebf6 core: Remove unsupported content warning 2023-07-22 23:08:42 +02:00
Daniel Jacobs 46a726efc6 chore: formatting 2023-07-21 23:34:43 +02:00
Daniel Jacobs e99d7f63dc extension: Don't throw error when Firefox add-on is in review 2023-07-21 23:34:43 +02:00
Nathan Adams 3447b8bfdd chore: npm run format 2023-07-20 14:00:04 +02:00
renovate[bot] 0cbfda22db chore(deps): update node.js dependencies 2023-07-20 14:00:04 +02:00
Crowdin Bot b2afcbaf3e chore: Update translations from Crowdin 2023-07-20 13:41:04 +02:00
Daniel Jacobs affff425c5 web: Fix typo in build_wasm.js 2023-07-19 11:37:15 -04:00
Kornelius Rohrschneider a0d0b8e638 core: Refactor & improve NavigatorBackend implementations
All NavigatorBackend implementations have been refactored, resulting in
improved code quality, less duplicated code, more consistent and easier
to understand procedures, additional error handling and better error
messages.

A resolve_url method has been added to the NavigatorBackend trait. It
takes a URL and and resolves it to the actual URL from which a file can
be fetched (including handling of relative links and pre-processing). It
has been implemented in each NavigatorBackend implementation.

Duplicated code has been put into new public functions in
core/src/backend/navigator.rs which are called by all NavigatorBackend
implementations.

ExternalNavigatorBackend:
- The navigate_to_url and fetch methods have been adapted to use
  resolve_url, removing redundant code.
- Error handling has been added in case that the URL can't be converted
  to a PathBuf.
- A TODO about differences between the flash player fetch and the
  Ruffle fetch implementation has been added.

WebNavigatorBackend:
- The previous resolve_url method exclusively to the WebNavigatorBackend
  has been replaced by the new resolve_url method. It is used by
  navigate_to_url and fetch.
- resolve_url now always pre-processes the URL if it's valid (even if no
  base_url exists) and explicitly returns whether the URL can be parsed.
- navigate_to_url now traces an explanatory error each if the URL can't
  be parsed or is local.
- fetch now returns an explanatory error each if the URL can't be parsed
  or is local (previously, a vague "Got JS error" has been returned).

TestNavigatorBackend & NullNavigatorBackend:
- fetch pre-processes the URL now (using the resolve_url implementation).
- If the URL isn't local, an explanatory error is returned (previously,
  it was just an "Invalid URL" error).
- If the URL can't be parsed, an explanatory error with the reason is
  returned (previously, it was just an "Invalid URL" error).

Additionally, error messages in all NavigatorBackend implementations
have been improved and made more consistent, e.g. if a local file can't
be read.
2023-07-17 00:08:02 +02:00
Kornelius Rohrschneider 687c0e7516 core: Complete MovieClip error state & Change uncompressed_len to i32
Previously, the MovieClip error state contained one TODO in order to be
completely implemented: The HeaderExt variable uncompressed_len needs to
be -1 in the error state, but its type has been u32.
The type has now been changed to i32, and the variable is set to -1 in
the default_error_header function. Therefore, the MovieClip error state
is now fully implemented.

Other connected functions and variables like SwfMovie::uncompressed_len
or MovieClip::total_bytes have been adjusted to this type change. Code
has been adjusted if needed where this value is used.
2023-07-17 00:08:02 +02:00
Kornelius Rohrschneider 893052c2a6 core: Add MovieClip error state
A load_error_swf function has been added to the Loader. It makes the
MovieClip enter the error state in which some attributes have certain
error values to signal that no valid file could be loaded. This happens
if no file could be loaded or if the loaded content is no valid
supported content.
The function creates an error state movie stub using the new
SwfMovie::error_movie function (which uses a new default_error_header
function) and configures remaining variables with the
movie_not_available method.
One TODO in order for the error state to be completely implemented has
been added.

Since the error state of the MovieClip includes the final URL of the SWF
file obtained after any redirects, the load_error_swf and
movie_loader_error functions (now) take an swf_url attribute.
To get this URL in case no file could be loaded, the
NavigatorBackend::fetch method has been changed to return an
ErrorResponse struct (including the url and the actual error) in the
error case. The Response struct returned in the success case has been
renamed to SuccessResponse.
All fetch implementations have been adapted accordingly. Code has been
adjusted to return the actual error where that's needed.

Documentation has been added and improved.
2023-07-17 00:08:02 +02:00
Nathan Adams 34c0d41fca web: Remove no longer needed depencency 'shx' 2023-07-15 23:48:04 +02:00
Nathan Adams be48ff357f web: Add build_wasm.js script to replace chained npm scripts 2023-07-15 23:48:04 +02:00
nosamu 48e37914cf web: Make isTouch indicate the source of the last PointerEvent
This allows the behavior of the context menu to change depending
on whether it was triggered by a touch or right-click.
2023-07-15 19:14:13 +02:00
nosamu e7689ac883 Revert "web: Make isTouch locally scoped to showContextMenu"
This completely broke touch detection
2023-07-15 19:14:13 +02:00
renovate[bot] f0607d6a1f chore(deps): lock file maintenance rust dependencies 2023-07-11 22:42:51 +02:00
dependabot[bot] fe4b02fe2a build(deps-dev): bump stylelint from 15.9.0 to 15.10.1 in /web
Bumps [stylelint](https://github.com/stylelint/stylelint) from 15.9.0 to 15.10.1.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/15.9.0...15.10.1)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-10 08:28:22 +02:00
Aaron Hill 009fab1889 core: Expose `LoaderInfo.parameters` and fix other properties
When using a 'Loader', properties on the 'contentLoaderInfo' become
set during specific events in the load sequence. In particular,
'LoaderInfo.bytesTotal' becomes available during the first 'progress'
event.

Also, 'LoaderInfo.parameters' is now properly set from the URL query
parameters. In Flash player, this work even with filesystem urls
(e.g. 'file:///some/path/to/file.txt?paramOne=valOne' will load
a file named 'file.txt', setting and expose the parameter 'paramOne'
with value 'valOne' in `LoaderInfo.parameters`). This required some
cleanup to the desktop and test NavigatorBackend impls to strip
out query parameters when loading a parameter from disk.

Previously, we would set `SwfMovie.parameters` manually from the url.
Now, the various `SwfMovie` constructors automatically extract
query parameters from the provided url. Outside of `SwfMovie`,
we only append *extra* parameters (e.g. those set from `flashvars`).

This makes CPMStar ads work, since the loaded SWF needs to access
`LoaderInfo.parameters`
2023-07-05 19:47:16 -04:00
Aaron Hill 3401971729 web: Use Rc, Cell, and RefCell for non-thread-safe types 2023-07-04 20:50:46 +02:00
TÖRÖK Attila 0fe8469d24 chore: Run `npm update --save` in `web`
Also `npm install` to make sure `package-lock.json` is clean.
2023-07-02 13:55:24 +02:00