Commit Graph

76 Commits

Author SHA1 Message Date
d043be6031 Merge pull request #105585 from marcosc90/fix-web-update-size
[Web] Prevent unnecessary canvas resizes by flooring scaled dimensions
2025-05-14 09:44:13 -05:00
fb39aa4fd3 Merge pull request #105833 from marcosc90/perf-web-shader-source
[Web] Optimize `GL.getSource` for known-length shader sources
2025-05-14 09:44:08 -05:00
197b307061 [Web] Optimize GL.getSource for known-length shader sources 2025-04-27 17:44:08 +02:00
3e7e09f915 Web: Avoid unnecessary gamepad polling when no gamepads are connected 2025-04-20 21:47:53 +02:00
ed0690dc44 Web: prevent unnecessary canvas resizes by flooring scaled dimensions 2025-04-20 16:53:37 +02:00
030e7d4e2d [Web] Fix issue when pausing an non-started sample 2025-02-17 09:49:50 -05:00
cdb6fc7f74 [Web] Remove position pool system and return false when done instead 2025-02-11 10:43:34 -05:00
c558c8a5f1 [Web] Fix audio issues with samples and GodotPositionReportingProcessor 2025-01-29 17:02:14 -05:00
0d4c68f82b Merge pull request #100482 from adamscott/fix-closure-issues
Fix (some of the) 3.1.73 emscripten Closure compiler issues
2024-12-17 16:19:29 +01:00
20daa75d43 Fix (some of the) 3.1.73 emscripten Closure compiler issues 2024-12-16 14:05:07 -05:00
a7505ee0bc Add Web MIDI support
Co-authored-by: Adam Scott <ascott.ca@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-12-15 21:24:15 +11:00
9d329f54c0 [Web] Restore ScriptProcessorNode audio driver fallback
Godot has a ScriptProcessorNode audio driver implementation for the
(deprecated) Web API.

As reported by some users, this fallback was not properly re-added
during the Godot 4 transition, and was left as "dead code".

While the API is deprecated, it is still supported by most browsers, and
some WebView may not implement AudioWorklet correctly (the new
recommended API).

This commit re-adds the ScriptProcessorNode implementation as a fallback
if the AudioWorklet driver fails to initialized (and can be forced if
desired via project settings as usual).
2024-12-10 18:22:03 +01:00
57125f48ce Merge pull request #98069 from thedinosoar/fix/service-worker-sandbox-error-98068
[Web] Fix PWA callback assignment causing crash in sandboxed iframes
2024-11-25 13:22:29 -06:00
17e8cf0d87 Merge pull request #99044 from Sticksman/bug-fix-98873
Remove deprecated worker.js file
2024-11-22 14:54:41 -06:00
5295692990 Fix issue where focus timer would throw continuously 2024-11-11 15:08:16 -05:00
1768a1b991 Remove deprecated worker.js file 2024-11-11 09:47:43 -08:00
75bf6df49a Make IME code early return instead 2024-11-07 13:27:29 -05:00
1015a481ff Merge pull request #98431 from lodicolo/4.3-stable_GH_76825
Fix GodotFetch glue code for null response bodies
2024-10-24 13:23:07 -05:00
c7f421ef5f Fix GodotFetch glue code for null response bodies
The spec says that Response.body can be null (in the event of requests that should have no body, like HEAD requests) and Firefox adheres to it which results in request failure for HEAD requests on Firefox for web exports.

This commit addresses that by treating a null body as an "empty" body (without using a polyfill) and avoids changing the request lifecycle as much as possible.

PR review changes:
- Use == instead of strict ===
- Do not use ?? null
- Comment formatting
2024-10-23 08:10:35 -04:00
05b266bd89 Fix PWA callback assignment and error handling 2024-10-22 10:28:21 -07:00
7a634ad2d4 [Web] Make audio bus fetching more resilient to errors 2024-10-02 11:24:57 -04:00
a9b934b657 Add JavaScriptBridge buffer methods 2024-09-16 12:13:34 -04:00
aaafd163b2 Honor pitch_scale value before playing audio sample 2024-08-20 10:29:32 -04:00
f2fb3353cb Merge pull request #95197 from yahkr/95128-audio-fix
Fix AudioStreamPlayer `get_playback_position()` for web build
2024-08-16 14:33:05 +02:00
bcd776e441 Fix AudioStreamPlayer get_playback_position() for web build 2024-08-08 15:58:25 -04:00
1776258b1c Add missing null check before disconnecting source 2024-07-30 15:00:58 -04:00
61c4ce272c [Web] Gracefully handle non-finite audio volumes 2024-07-29 15:48:06 +02:00
96feb924e8 [Web] Enable the closure compiler in CI
Also fixes some JSDoc annotations in GodotAudio
2024-07-26 13:27:52 +02:00
42e5b3ac2d Merge pull request #94044 from adamscott/fix-web-sample-playback-finished-signal
Fix Web samples finished missing signal
2024-07-07 21:59:00 +02:00
a38f30fbd5 Fix Web samples finished missing signal 2024-07-07 14:47:54 -04:00
d926223c64 Fix IME blocking controls 2024-07-07 13:06:18 +03:00
01c24ff862 Merge pull request #93750 from adamscott/add-bigint-support-on-js-value-conversion
Add `bigint` support on JS value conversion
2024-07-04 11:31:58 +02:00
ee2759013b Add bigint support on JS value conversion 2024-07-03 07:44:32 -04:00
586db3aae7 Fix assignations to non-existing keys and clean-up 2024-06-29 14:30:57 -04:00
57db018e33 Fix pausing issues when using Web Audio samples 2024-06-20 10:32:28 -04:00
52fa4f05f3 Add samples playback support 2024-06-18 11:06:31 -04:00
27d67b5ae6 [Web] Use the module config to preload GDExtension libraries.
Instead of calling loadDynamicLibraries ourselves, we add the
GDExtension libraries to preload to the "dynamicLibraries" module config
property.

This seems to fix some threading issue with some browsers during the
init phase.
2024-06-14 16:04:16 +02:00
ac6f5780b1 Merge pull request #91695 from bruvzg/web_ime_pos
[Web IME] Fix suggestion window position in Chromium based browsers.
2024-05-28 15:48:42 +02:00
1a89ae70eb Upgrade to eslint 9 2024-05-22 11:32:25 +02:00
99d6f32918 [Web IME] Fix suggestion window position in Chromium based browsers. 2024-05-09 08:52:27 +03:00
8079cd4358 [Web] Fix closure compiler typedef annotation
The typedef annotation is expected to come bofre a var (or const) since
it's most commonly used in externs. Use an inline definition instead.
2024-04-26 13:11:41 +02:00
62cec03a06 Add option to ensure cross-origin isolation headers on web export 2024-02-12 09:27:39 -05:00
7223c5b54a Fix various typos with codespell
Using 2.2.7.dev115+g0eb441d6.

Had to add `cancelled` to the ignore list, as it's a Wayland signal which
we're handling in our code, so we don't want codespell to fix that "typo".

Also includes the typo fix from #87927.

Co-authored-by: Divyanshu Shekhar <61140213+divshekhar@users.noreply.github.com>
2024-02-07 11:09:34 +01:00
bd70b8e1f6 Add THREADS_ENABLED macro in order to compile Godot to run on the main thread 2024-01-17 13:58:29 -05:00
f9486a2d88 [Web] Add IME input support. 2023-12-15 19:11:10 +02:00
275c496bc8 Add MSAA support for WebXR 2023-12-11 09:01:24 -06:00
ba713c80df Fix various typos with codespell
Using 2.2.7.dev51+geb4a58fe.
2023-11-11 23:01:24 +01:00
bb69f0c090 [Web] Improve emscripten "locateFile" glue.
Be more selective on what we rewrite, since in recent emscripten
versions loading dynamic libraries relies on it.
2023-10-11 21:21:34 +02:00
a28dab7e82 Merge pull request #79711 from adamscott/web-non-blocking-main-thread
Add `proxy_to_pthread` option to `platform=web`
2023-10-09 23:22:22 +02:00
78c2a08fae Add proxy_to_pthread option to platform=web
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2023-10-09 11:50:01 -04:00