Ryan Braganza
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
Thaddeus Crews
6cbf7c77c2
Merge pull request #100150 from ArchercatNEO/homeless-export
...
Use temp dirs instead of cache dirs for export
2024-12-10 14:15:54 -06:00
Thaddeus Crews
d8761f2c79
SCons: Improve colored output
2024-12-10 11:44:48 -06:00
Fabio Alessandrelli
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
Adam Scott
a6c5373a09
[Web] Fix `DirAccess::unlink()` not updating the IDBFS
2024-12-09 17:48:08 -05:00
ArchercatNEO
00a791f04e
Use temp dirs instead of cache dirs for export
...
Fixes #95897
During CI scenarios $HOME may be set to an invalid value (such as
`/var/empty`).
Using temp dirs fits better with godot's usage of these paths and is
independent from the user's $HOME.
2024-12-08 12:07:17 +00:00
Fabio Alessandrelli
14e4e3424f
[Web] Implement dummy NetSocketWeb
...
This makes the class available to avoid spam from classes using it, even
if without any actual implementation (since raw sockets are not
available on the web).
2024-12-03 14:30:35 +01:00
Fabio Alessandrelli
c831f635fe
[Web] Implement dummy IPWeb instead of IPUnix
...
Note: This commit ties the IPUnix to the UNIX_SOCKET_UNAVAILABLE define,
disabling it when set. It is maybe not semantically correct (getifaddrs)
is not part of the "socket" API, but it's reasonable to expect that a
platform not supporting Unix-style sockets, would also not support other
Unix network functions.
2024-11-28 20:47:18 +01:00
Thaddeus Crews
3a5ce2ff94
Merge pull request #98901 from adamscott/add-editor-ensure-crossorigin-isolation-headers
...
[Web] Ensure editor crossorigin isolation headers
2024-11-27 10:47:13 -06:00
Thaddeus Crews
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
Thaddeus Crews
17e8cf0d87
Merge pull request #99044 from Sticksman/bug-fix-98873
...
Remove deprecated worker.js file
2024-11-22 14:54:41 -06:00
Adam Scott
1a082fdd80
Ensure editor crossorigin isolation headers
2024-11-21 10:29:07 -05:00
Fabio Alessandrelli
b4f8135d46
[Web] Fix Web Editor plugin being added to SCons multiple times
...
Move the Web Editor plugin files to an editor sub-folder inside the
platform folder.
2024-11-18 18:34:29 +01:00
A Thousand Ships
68f638cf02
Use `(r)find_char` instead of `(r)find` for single characters
2024-11-17 10:02:18 +01:00
Thaddeus Crews
a767a65cdf
Merge pull request #99123 from tygyh/Update-vulnerable-plugins
...
Update JavaScript/Java plugins to solve known vulnerabilities
2024-11-13 08:34:00 -06:00
Fabio Alessandrelli
9383610ad1
[Web] Disable UNIX sockets
...
They are not supported anyway, emscripten has an emulation layer that
implements them over WebSocket/WebRTC, which is really surprising for
users, and also not very useful since we have proper WebSocket and
WebRTC support.
This can make the build smaller, if we also disable the UPNP module
(which will otherwise include a third party library referencing "socket"
thus forcing emscripten to include the compatibility layer)
2024-11-13 10:28:08 +01:00
Thaddeus Crews
0445bfb01c
Merge pull request #98931 from adamscott/fix-ime-web-issues
...
[Web] Fix issue where focus timer would throw continuously
2024-11-12 09:28:10 -06:00
Thaddeus Crews
a833685e75
Merge pull request #96625 from elpozewaunig/web_splash_color
...
Display project settings splash color on web export
2024-11-12 09:28:08 -06:00
Thaddeus Crews
e66d9988a6
Merge pull request #95774 from Mickeon/documentation-miscellaneous-oddities
...
Fix miscellaneous oddities around the class reference
2024-11-12 09:27:47 -06:00
Dr. Dystopia
3077463151
Update JavaScript/Java plugins to solve known vulnerabilities
...
Done using the Snyk tool.
2024-11-12 16:06:35 +01:00
Elias Pozewaunig
4db5cd6e84
Display correct splash color on web export
2024-11-11 21:35:25 +01:00
Adam Scott
5295692990
Fix issue where focus timer would throw continuously
2024-11-11 15:08:16 -05:00
Felix Yuan
1768a1b991
Remove deprecated worker.js file
2024-11-11 09:47:43 -08:00
Adam Scott
784558f327
[Web] Remove warnings when setting vsync mode and screen keep on
2024-11-07 14:06:34 -05:00
Adam Scott
75bf6df49a
Make IME code early return instead
2024-11-07 13:27:29 -05:00
Thaddeus Crews
be70c2f873
Merge pull request #98350 from syntaxerror247/android-native-filepicker
...
[Android] Implement native file picker support
2024-10-31 20:14:41 -05:00
Yevhen Babiichuk (DustDFG)
0ba0093dd6
Remove duplicate of get_build_version
...
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-10-31 12:54:23 +02:00
Anish Mishra
0dfd18c84b
[DisplayServer] Add feature flag for native file dialog access to `user/res` and `options`
2024-10-30 14:13:43 +05:30
Thaddeus Crews
17f06f6dae
Merge pull request #97555 from dustdfg/platform_methods/extract_validate_arch
...
Build System: Extract `validate_arch` helper functions
2024-10-25 13:03:48 -05:00
Thaddeus Crews
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
Robbie Lodico
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
Keegan McGonigle
05b266bd89
Fix PWA callback assignment and error handling
2024-10-22 10:28:21 -07:00
Yevhen Babiichuk (DustDFG)
7aacdaa071
Build System: Extract `validate_arch` helper function
...
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-10-06 07:50:49 +03:00
Adam Scott
7a634ad2d4
[Web] Make audio bus fetching more resilient to errors
2024-10-02 11:24:57 -04:00
Adam Scott
4431af9153
Fix web export infinite reload issue
2024-09-30 11:27:43 -04:00
Rémi Verschelde
eeaca3a439
Merge pull request #96610 from adamscott/emscripten-minimum-requirements
...
[Web] Update minimum requirements for emscripten to 3.1.62
2024-09-26 18:45:10 +02:00
Adam Scott
a1e409c58b
Update minimum requirements for emscripten to 3.1.62
2024-09-26 10:19:48 -04:00
Thaddeus Crews
9f9ee0c813
SCons: Add unobtrusive type hints in SCons files
2024-09-25 09:34:35 -05:00
Adam Scott
a9b934b657
Add `JavaScriptBridge` buffer methods
2024-09-16 12:13:34 -04:00
A Thousand Ships
dd6443193c
[Editor] Expose more editor settings to documentation
...
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
2024-09-12 15:34:49 +02:00
bruvzg
10f3c1f587
Add support for non-blocking IO mode to `OS.execute_with_pipe`.
2024-09-06 14:16:39 +03:00
Rémi Verschelde
13a90e938f
Merge pull request #70096 from rune-scape/stringname-dict
...
StringName Dictionary keys
2024-09-03 17:38:06 +02:00
rune-scape
154049ce17
StringName Dictionary keys
...
also added 'is_string()' method to Variant
and refactored many String type comparisons to use it instead
2024-08-29 13:39:27 -07:00
bruvzg
07e986f728
Allow adding custom export platforms using scripts / GDExtension.
2024-08-28 10:29:01 +03:00
Fredia Huya-Kouadio
a5897d579b
Update the `GodotHost` interface to support signing and verifying Android apks
...
Update the export logic to enable apk generation and signing for Android editor builds
Note: Only legacy builds are supported. Gradle builds are not supported at this point in time.
2024-08-26 11:16:38 -07:00
Rémi Verschelde
b4f268fae8
Merge pull request #91018 from Daylily-Zeleen/daylily-zeleen/optionally_postinitialization_for_extension_owner
...
Allow ClassDB to create a Object without postinitialization for GDExtension.
2024-08-26 10:51:17 +02:00
Adam Scott
aaafd163b2
Honor `pitch_scale` value before playing audio sample
2024-08-20 10:29:32 -04:00
Daylily-Zeleen
3d575801ce
Allow ClassDB to create a Object without postinitialization for GDExtension.
2024-08-20 20:19:02 +08:00
Rémi Verschelde
d1424135d1
Merge pull request #90352 from Faless/web/serve_fix_browser_order
...
[Web] Fix browser opening too early with `serve.py`
2024-08-19 14:33:26 +02:00
Micky
b8f78b14be
Fix miscellaneous oddities around the class reference
2024-08-18 23:18:44 +02:00
Rémi Verschelde
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
Lisandro Lorea
9dd372f316
Fix gamepad triggers not working on web exports
...
Fixes #81758
DisplayServerWeb::process_joypads handles buttons 6 and 7 of the
HTML5 Standard Gamepad as a special case by doing:
`input->joy_axis(idx, (JoyAxis)b, s_btns[b]);`
This doesn't work because there is no JoyAxis 6 or 7 in the enum
To fix this we use JoyAxis::TRIGGER_LEFT and TRIGGER_RIGHT for button 6
and 7
However since we are now lying to input->joy_axis we also need to lie in
the mappings for the standard gamepad in godotcontrollersdb.txt,
otherwise input->joy_axis will try to find a mapping to axis 4(LT) and
axis 5(RT) that's not defined.
Therefore we set lefttrigger to +a4 and righttrigger to +a5 in the
mapping, to match what we are actually sending.
A cleaner, and more involved fix to this would be modifying
input->joy_button so that it can handle analog buttons and map them to
axes preserving their value instead of converting to boolean
2024-08-14 16:13:16 -03:00
Yahkub-R
bcd776e441
Fix AudioStreamPlayer get_playback_position() for web build
2024-08-08 15:58:25 -04:00
Fabio Alessandrelli
470a35832f
[Web] Fix browser opening too early with serve.py
2024-08-01 05:38:36 +02:00
Adam Scott
1776258b1c
Add missing null check before disconnecting source
2024-07-30 15:00:58 -04:00
A Thousand Ships
61c4ce272c
[Web] Gracefully handle non-finite audio volumes
2024-07-29 15:48:06 +02:00
Fabio Alessandrelli
96feb924e8
[Web] Enable the closure compiler in CI
...
Also fixes some JSDoc annotations in GodotAudio
2024-07-26 13:27:52 +02:00
Fabio Alessandrelli
26f17c33a5
[Web] Add workaround for missing export in threaded builds
...
The offending symbol gets stripped away by wasm-dce but it's used on the
JavaScript side and causes and undefined symbol which also causes the
closure compiler to throw an error.
2024-07-26 12:28:36 +02:00
Adam Scott
2f5f84b470
Fix audio samples not being able to be "finished"
2024-07-17 10:45:38 -04:00
Rémi Verschelde
8897c77d50
SCons: Default `optimize` to `auto`, fixing `target`/`dev_build` inference for Web
...
Fixes #94087 .
2024-07-09 00:21:29 +02:00
Rémi Verschelde
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
Adam Scott
a38f30fbd5
Fix Web samples finished missing signal
2024-07-07 14:47:54 -04:00
Anni Ryynänen
d926223c64
Fix IME blocking controls
2024-07-07 13:06:18 +03:00
Rémi Verschelde
ce16818dd5
Fix missing include in Web main after #93906
...
My bad, I introduced the bug when amending it.
2024-07-05 14:40:44 +02:00
Paul Sinnett
db97d88214
Fix preloading a zip in the web editor
2024-07-04 22:13:05 +02:00
Rémi Verschelde
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
Adam Scott
ee2759013b
Add `bigint` support on JS value conversion
2024-07-03 07:44:32 -04:00
Rémi Verschelde
f0d15bbfdf
Merge pull request #93853 from Faless/web/no_force_stdlib
...
[Web] Remove unnecessary `EMCC_FORCE_STDLIBS` in dlink builds
2024-07-02 17:27:35 +02:00
Fabio Alessandrelli
67c06866de
[Web] Remove unnecessary EMCC_FORCE_STDLIBS in dlink builds
...
As discussed with upstream, the C/C++ standard library is always fully
included when building with MAIN_MODULE=1, so using EMCC_FORCE_STDLIBS
is not necessary in our case.
2024-07-02 16:47:00 +02:00
Adam Scott
586db3aae7
Fix assignations to non-existing keys and clean-up
2024-06-29 14:30:57 -04:00
Adam Scott
1e8e9f4b09
Fix web export state for remote debug
2024-06-26 08:37:56 -04:00
Fabio Alessandrelli
f59c1f08d7
[Web] Add "threads"/"nothreads" feature tags to export presets
...
Following the "variant/thread_support" preset option.
2024-06-25 11:42:41 +02:00
Rémi Verschelde
c24f2f1c0c
Merge pull request #93489 from dsnopek/web-disable-getprocaddress
...
Disable `*glGetProcAddress()` on the web
2024-06-25 09:19:46 +02:00
David Snopek
8e242fe7c1
Disable `*glGetProcAddress()` on the web
2024-06-24 10:57:22 -05:00
Thaddeus Crews
cc6dd8d02c
Style: Optimize `.svg` files with `svgo`
2024-06-23 08:15:19 -05:00
Adam Scott
57db018e33
Fix pausing issues when using Web Audio samples
2024-06-20 10:32:28 -04:00
Rémi Verschelde
34b9eef177
Merge pull request #91623 from adamscott/web-default-to-nonthreaded
...
Default to non-threaded export setting for the web
2024-06-19 10:09:49 +02:00
Adam Scott
52fa4f05f3
Add samples playback support
2024-06-18 11:06:31 -04:00
Fabio Alessandrelli
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
Fabio Alessandrelli
7af8c494ab
[Web] Force emcc to use "wasm" longjmp mode
...
SUPPORT_LONGJMP have changed since emscripten 3.1.32 to default to
"wasm" mode when exceptions are enabled, and "emscripten" mode when
disabled.
While we generally doesn't use exception in core, linked libraries may
need them, and emscripten don't plan to support WASM EH + Emscripten
SjLj in the long term.
2024-06-14 16:03:56 +02:00
Fabio Alessandrelli
e874cd84f0
[Web] Remove space between emscripten "-s" flags and the option
2024-06-14 16:03:56 +02:00
Adam Scott
5a01c2e954
Replace deprecated `USE_WEBGL2` linker flag
2024-06-10 12:14:27 -04:00
kleonc
91e995e704
Fix creating cursor image from AtlasTexture
2024-06-05 01:44:05 +02:00
Rémi Verschelde
c98fef08bf
Merge pull request #89033 from bruvzg/doc_end_err
...
[DisplayServer] Add error messages and descriptions to callbacks.
2024-05-28 17:48:42 +02:00
bruvzg
714effdf07
[DisplayServer] Add error messages and descriptions to callbacks.
2024-05-28 17:36:54 +03:00
Rémi Verschelde
b8f3c5e2ab
Merge pull request #92427 from AThousandShips/bind_go_away
...
Replace `.bind(...).call_deferred()` with `.call_deferred(...)`
2024-05-28 15:50:01 +02:00
Rémi Verschelde
ca708b5706
Merge pull request #92026 from Repiteo/scons/web-fixes
...
SCons: Minor fixes/adjustments for web compilation
2024-05-28 15:48:49 +02:00
Rémi Verschelde
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
A Thousand Ships
4ed62665a2
Replace `.bind(...).call_deferred()` with `.call_deferred(...)`
2024-05-27 13:29:57 +02:00
Thaddeus Crews
5d265e9a7e
SCons: Minor fixes/adjustments for web compilation
2024-05-24 12:30:24 -05:00
Rémi Verschelde
7870b28ed3
Merge pull request #92252 from poiati/fix-wayland-window-class
...
Properly set window class in Wayland
2024-05-23 08:59:23 +02:00
Rémi Verschelde
de490253fe
Merge pull request #92124 from Repiteo/scons/platform-flags-dict
...
SCons: Convert platform `get_flags` to dictionary
2024-05-23 08:59:07 +02:00
Thaddeus Crews
896b003cc8
SCons: Convert platform `get_flags` to dictionary
2024-05-22 13:53:20 -05:00
Paulo Poiati
a3769c0edc
Properly set window class in Wayland
2024-05-22 10:42:12 -03:00
patwork
1a89ae70eb
Upgrade to eslint 9
2024-05-22 11:32:25 +02:00
Jakub Marcowski
d9f8ef68df
Update pre-commit hooks configuration to use `ruff` instead of `black`
2024-05-21 18:02:29 -05:00
Hakim
04aaa86039
Disable remote debug button when there are no runnable presets
2024-05-17 00:15:13 +02:00
patwork
b6536884cc
Fix quotes style in HTML shell head include
2024-05-12 01:37:13 +02:00
bruvzg
99d6f32918
[Web IME] Fix suggestion window position in Chromium based browsers.
2024-05-09 08:52:27 +03:00
Adam Scott
c465dbb051
Default to non-threaded export setting for the web
2024-05-06 12:21:14 -04:00