Commit graph

430 commits

Author SHA1 Message Date
Lea Anthony
718fd92f85
fix(v2): prevent wails init in non-empty directory with -d flag (#4955)
* fix(v2): prevent wails init in non-empty directory with -d flag

When using -d to specify a target directory, wails init now checks if
the directory is non-empty and errors if so. This prevents accidental
data loss (e.g., overwriting .git directories).

Fixes #4940

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(v2): add tests for init non-empty directory check

Add tests to verify:
- Install fails when target directory is non-empty
- Install succeeds when target directory is empty

Also update changelog with the fix.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-02-04 21:23:07 +11:00
Lea Anthony
01b661f6a5
feat(v2): add runtime.ResetSignalHandlers() for Linux panic recovery (#4921)
* feat(v2): add runtime.ResetSignalHandlers() for Linux panic recovery

Add a new runtime function that allows users to reset signal handlers
before code that might panic from nil pointer dereferences.

On Linux, WebKit installs signal handlers without the SA_ONSTACK flag,
which prevents Go from properly recovering from panics caused by
SIGSEGV and other signals. This function adds SA_ONSTACK to the
relevant signal handlers (SIGSEGV, SIGBUS, SIGFPE, SIGABRT).

Usage:
```go
go func() {
    defer func() {
        if err := recover(); err != nil {
            log.Printf("Recovered: %v", err)
        }
    }()
    runtime.ResetSignalHandlers()
    // Code that might panic...
}()
```

The function is a no-op on macOS and Windows.

Fixes #3965

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(v2): add panic-recovery-test example

Add an example that demonstrates the Linux signal handler issue (#3965)
and verifies the fix using runtime.ResetSignalHandlers().

The example includes:
- A Greet function that triggers a nil pointer dereference after a delay
- Auto-call from frontend after 5 seconds
- README with reproduction steps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 18:55:57 +11:00
NarciLee
4e8b705cda
fix: add missing EventsOffAll export to runtime templates (#4883)
* fix: add missing EventsOffAll export to runtime templates

The EventsOffAll function was implemented in the internal runtime
(desktop/events.js) and exported in the wrapper runtime files, but was
missing from the public runtime templates that are generated in user
projects. This caused a type mismatch where EventsOffAll was declared
in the TypeScript definition but the implementation was missing.

This commit adds the EventsOffAll export and type declaration to all
frontend framework templates:
- Common templates (generate/assets/common)
- React / React-TS
- Vue / Vue-TS
- Svelte / Svelte-TS
- Preact / Preact-TS
- Lit / Lit-TS
- Vanilla / Vanilla-TS

Fixes #4703

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add EventsOffAll to runtime events documentation

Added EventsOffAll function documentation to both English and Chinese
versions of the runtime events reference.

The function was already implemented in Go (pkg/runtime/events.go) and
JavaScript (internal/frontend/runtime/desktop/events.js), but was missing
from the public documentation.

Related to #4703

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore: add EventsOffAll fix to changelog

Added entry for the EventsOffAll fix to the Unreleased section
of the changelog.

Related to #4703

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: translate EventsOffAll description to Chinese

Improved consistency in Chinese documentation by translating the
EventsOffAll description from English to Chinese, matching the
style of other event method descriptions.

Related to #4703

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: cc <Zhuanz@MacBook-Pro.local>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2026-01-25 13:10:24 +11:00
Xelus22
0357730294
Fix up templates to correct go version (1.23.0) (#4618)
* Fix up templates to correct 1.23.0

* add changelog

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2026-01-25 11:16:42 +11:00
Lea Anthony
fc1c90e0ce
Update windows.go 2025-11-04 08:41:29 +11:00
Anshuman
dfff549002
Prevent DLL hijacking by setting default DLL directories on initialization (#4207)
* Prevent DLL hijacking by setting default DLL directories on initialization

* Updated the changelog

* Added DLLSearchPaths option to control DLL search paths on Windows

* Changed the order of the execution for uxtheme.go and consts.go

* Init uxtheme.go and consts.go once the dll path is set

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-09-24 15:44:58 +10:00
Andrey Pshenkin
857f7b7518
[V2] Add origin verification for bindings (#4480)
* Update go-webview2 to v1.0.22

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-08-13 08:50:23 +10:00
Taite Nazifi
7002f2e943
Content Privacy flag for Windows and MacOS (#4241)
* feat(options): add ContentProtection bool config to macos and windows options

* feat(darwin): implement ContentProtection for darwin

* feat(windows): implement ContentProtection for windows

* chore(website): add feature to changelog

* feat(examples): add an example showcasing the ContentPrivacy flag

* chore(examples): update readme

* fix(example): format and build

* fix(winc): rename to wda and add version check

* chore(reference): add docs for ContentProtection

* fix(darwin): future-proof setting the sharing type

* fix(example): wording consistency

* chore(examples): remove privatewindow example

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-07-19 16:58:34 +10:00
rynsf
ac1479afa2
fix: cross compiling on linux for windows (#4263)
compile wailsbindings for the build machine

Co-authored-by: rynsf <rynsf@users.noreply.github.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2025-05-19 21:16:10 +10:00
Andrey Pshenkin
797016d736
Merge branch 'master' into feature/allow-disable-panic-recovery 2025-04-17 11:52:36 +01:00
Lea Anthony
f8998da78d
Fix for webview2 detection 2025-04-12 13:21:37 +10:00
Andrey Pshenkin
125c4ab485
Merge branch 'master' into feature/allow-disable-panic-recovery 2025-04-01 17:20:33 +01:00
josc146
ecf1c41db4 improve comment 2025-03-16 19:32:31 +08:00
josc146
4541cf0b3a add -skipembedcreate cli option 2025-03-16 18:26:26 +08:00
Andrey Pshenkin
e9100152e7
feat: add option to disable panic recovery in message processing 2025-03-13 00:06:07 +00:00
Lea Anthony
7aba2c3b95
Fix issues building with darwin/universal target (#4093)
Fixed issues building with `darwin/universal` target
2025-02-24 18:53:43 +11:00
Lea Anthony
1fb6403e7d
v2.10 2025-02-15 09:10:13 +11:00
Lea Anthony
3605fdf42f
Update dependencies. Fix buildvcs compile error 2025-02-08 12:56:06 +11:00
Atterpac
d824318a66
fix dev mode logging bug (#3972)
changelog.md

retain env support

actually fix the issue
2025-01-23 11:12:18 +00:00
lvyaoting
dd4aa56310
chore: fix some comments (#3932)
Signed-off-by: lvyaoting <lvyaoting@outlook.com>
2024-12-06 14:35:46 +11:00
Lea Anthony
63e1f3c09c
Fix TS definition of WindowSetSize 2024-11-23 22:07:51 +11:00
Andrey Pshenkin
a964be1ada
Allow to specify macos-min-version externally (#3756)
* Allow to specify macos-min-version externally

* update changelog

* add note in documentation for macos version

* spelling fixes
2024-10-20 14:09:39 +11:00
Andrey Pshenkin
1b6ed1bc00
Allow set window class name via options for Windows (#3828)
* Allow set window class name via options

* update changelog
2024-10-20 13:36:13 +11:00
fcying
8a5a0506bf
fix: pass platform and arch to GenerateBindings for cross compilation (#3795) 2024-10-10 20:17:43 +11:00
nick-bae
bd2c1ea73f
bugfix : fix error on building runnable .app on MacOS when 'name' and 'outputfilename' are different. (#3789)
* mod : added OutputFilename field to assetData \n mod : modified resolveProjectData to export OutputFilename \n mod : modified CFBundleExecutable values to .OutputFilename in info.dev.plist, info.plist

* mod : update changelog.mdx

---------

Co-authored-by: nick-bae <nick.bae@ddkakaoenterprise.com>
2024-09-29 03:06:27 +00:00
pagal
5d2b4308a8
Removed unnecessary files. Fixes #3737 (#3738)
Removed unnecessary files.

Issue was fixed via #1813 and the extra readmes is not needed anymore
2024-09-09 08:38:14 +10:00
Lea Anthony
3f83b42db5
FIX: Address Mac CGO Crash (#3590)
* Copy request to Go memory

* Update changelog.mdx

* Update v2/pkg/assetserver/webview/responsewriter_darwin.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Fix import

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-08-20 18:12:56 +10:00
taisei
5b091db26d
Fixed an error that occurred when an author name contains a string that is not suitable for JSON (#3638)
* fix(pkg): Fixed an issue where wails new would throw an error if the author name contained non-JSON legal characters.

* refactor(pkg): Incorporating coderabbit's suggestions

* docs: write changelog.mdx

* Escape using json package. Add tests.

* Update test.

---------

Co-authored-by: Lea O'Anthony <lea.anthony@gmail.com>
2024-07-29 21:34:19 +10:00
Alex Pliutau
e941f36267
#3200: Use OutputFilename instead of Name (#3551)
* Use OutputFilename instead of Name

* #3200: add changelog entry

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-07-20 08:50:16 +10:00
Jakub Peleška
022a5ffec4
Fix Drag & Drop JS runtime (#3516)
* Feature/1090 native drag and drop for file and folder (#3203)

* implement basic dnd for linux

* implemented windows

* progress changed linux handling and added coordinates to drop

* progress fix drop coordinates on windows

* progress remove log from windows

* progress move js

* update js after merge

* fix event listener registration

* fix segfault on non file drag

* remove logs, fix coordinates

* minor changes, simplify to drop only

* rename EnableWails -> EnableFileDrop

* add documentation (PR id missing)

* add PR id to changelog

* fix remove casting from malloc

* fix nil check for OnFileDrop's callback

* fix nil check for OnFileDrop skip event when nil

* add error message for nil callback in OnFileDrop

---------

Co-authored-by: lyimmi <lelvente.zambo@gmail.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>

* implement native drag and drop for macOS (#3250)

* implement native drag and drop for macOS

* update docs

* add to changelog

* update docs (macOS is supported)

* Fix windows DragAndDrop options

* Fix class unset on dragleave for full frame elements

* improve class unset (nested elements and borders case)

* Fix runtime drop target detection and CSS class assignment

* Edit changelog

* Fix drag-and-drop options in references

* Update v2/internal/frontend/desktop/darwin/WailsWebView.m

* Update v2/internal/frontend/desktop/darwin/WailsWebView.m

---------

Co-authored-by: Zámbó, Levente <levente.zambo@gmail.com>
Co-authored-by: lyimmi <lelvente.zambo@gmail.com>
Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Andrey Pshenkin <andrey.pshenkin@gmail.com>
Co-authored-by: Pavel Binar <pavel@beamtransfer.io>
2024-06-10 15:15:28 +10:00
Lea Anthony
cf18fcfc1e
Use NewSingleHostReverseProxy (#3480) 2024-05-14 21:04:28 +02:00
Atterpac
05bdeb0844
allow builds for webkit2gtk-4.1 (#3465) 2024-05-08 19:26:27 -05:00
Lea Anthony
c1c4220978
V2 features/proxy to external server (#3463)
* Add NewProxyServer function

* Pass through all methods for mac

* Content length fix

* Update changelog.mdx

* Update deps
2024-05-08 20:39:49 +10:00
Leo
b7713da70e
Fixed an issue where go:embed directives would generate illegal directories (#3445)
* Update staticanalysis.go and associated tests

* Update changelog

* Changed format of octal literal

* Update changelog
2024-05-02 21:40:38 +10:00
Andrey Pshenkin
b8dae7a6e2
Fix icon issues with windows when project name contains spaces (#3400)
* fix icon issues with windows when project name contains spaces

* add comment

* add to change log

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2024-04-29 16:59:04 -05:00
lvyaoting
aad811391b
chore: fix function names in comment (#3383)
Signed-off-by: lvyaoting <lvyaoting@outlook.com>
2024-04-09 17:19:06 -05:00
Lea Anthony
bf2d6d3241
Remove xattr via obj-c (#3328)
* Remove xattr via obj-c

* Revert "Remove xattr via obj-c"

This reverts commit 880a4e0b40.

* Fixed path xattr call
2024-03-24 12:32:14 +11:00
Lea Anthony
964abcc6bd Escape bindings, even though we generate them internally. 2024-03-02 16:42:20 +11:00
Cristian Bilu
5d22da4126
Add disable zoom on mac (#3289)
* Add disable zoom on mac

* Add changelog line

* Add zommable in main.m

I see this file is ignore, but i think it's better to keep it up-to-date so if we ever unignore it will work correctly.
2024-03-02 15:47:59 +11:00
Lea Anthony
741558532b
Revert "Added possibility to specify platform for dev command (#3117)"
This reverts commit 4b4fcdd47c.
2024-02-08 21:38:24 +11:00
atterpac
9903ba70d5
Update vue-tsc (#3234)
changelog
2024-02-05 17:12:09 +11:00
Dmytro Manchynskyi
946b6020c9
Fix -compiler flag for build, dev and generate commands (#3121)
* Fix -compiler flag for build, dev and generate commands

* Update changelog and docs

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-12-18 07:54:44 +11:00
Light
4b4fcdd47c
Added possibility to specify platform for dev command (#3117)
* Added possibility to specify platform for dev command

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2023-12-18 07:30:05 +11:00
Lea Anthony
772f0215a6
Remove quarantine attribute from bindings + compiled binary (#3118)
* Remove quarantine attribute from bindings + compiled binary

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2023-12-15 20:26:30 +11:00
Yong Hui
8efaaffadb
feat: add windows options supports DisablePinchZoom configuration(#2021) (#3115)
* feat: add windows options supports `IsPinchZoomEnabled` configuration(#2021)

* refactor: modify `IsPinchZoomEnabled` to `DisablePinchZoom` ensure default behavior is consistent

* docs: add `DisablePinchZoom` to changelog

* docs: update the description of `DisablePinchZoom` attributes in the document

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-12-15 20:21:50 +11:00
imgbot[bot]
5f412d0bfb
[ImgBot] Optimize images (#3094)
*Total -- 454.86kb -> 406.40kb (10.65%)

/website/static/img/showcase/snippetexpandergui-select-snippet.png -- 140.27kb -> 113.72kb (18.93%)
/website/static/img/showcase/snippetexpandergui-search-and-paste.png -- 86.16kb -> 70.75kb (17.88%)
/website/static/img/showcase/snippetexpandergui-add-snippet.png -- 36.61kb -> 30.74kb (16.04%)
/website/static/img/icon-linux-dark.svg -- 2.56kb -> 2.38kb (7.02%)
/v2/pkg/templates/templates/preact/frontend/src/assets/preact.svg -- 1.54kb -> 1.49kb (3.54%)
/website/static/img/sponsors.svg -- 187.71kb -> 187.32kb (0.21%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
Co-authored-by: ImgBotApp <ImgBotHelp@gmail.com>
2023-12-12 20:33:21 +11:00
Andrey Pshenkin
b9de31e38e
Add support for interface generation and enums (#3047)
* Add support to output ts models as interfaces

* Add support to generate enums from golang

* cleanup logs

* add missing documentation

* fix package names for enum. Fix processing enums that are in separate packages

* revert golang 1.21

* Fix spelling

* Add support for simplified version of Enum for typescriptify

* update docs

* removed unused logs

* Add tests. Fix imported enums types in models

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-11-26 06:50:49 +11:00
Lea Anthony
9ce0ddb4f8 [chore] lint fixes 2023-11-12 12:30:49 +11:00
Denis Bernard
08e12de2a0
linux: workaround for #2977 (#3027)
In NewWindow, set options.Linux.WebviewGpuPolicy to WebviewGpuPolicyNever
if options.Linux is nil, disabling GPU acceleration by default on linux
until the upstream bugs https://bugs.webkit.org/show_bug.cgi?id=228268
and https://bugs.webkit.org/show_bug.cgi?id=261874 are fixed.
2023-11-04 18:03:12 +11:00
Andrey Pshenkin
ae688aa07d
Implement custom protocol association support (#3000)
* implement MacOS openFile/openFiles events

* wip: windows file association

* fix macro import

* add file icon copy

* try copy icon

* keep only required part of scripts

* update config schema

* fix json

* set fileAssociation for mac via config

* proper iconName handling

* add fileAssociation icon generator

* fix file association icons bundle

* don't break compatibility

* remove mimeType as not supported linux for now

* add documentation

* adjust config schema

* restore formatting

* try implement single instance lock with params passing

* fix focusing

* fix focusing

* formatting

* use channel buffer for second instance events

* handle errors

* add comment

* remove unused option in file association

* wip: linux single instance lock

* wip: linux single instance

* some experiments with making window active

* try to use unminimise

* remove unused

* try present for window

* try present for window

* fix build

* cleanup

* cleanup

* implement single instance lock on mac os

* implement proper show for windows

* proper unmimimise

* get rid of openFiles mac os. change configuration structure

* remove unused channel

* remove unused function

* add documentation for single instance lock

* add PR link

* wip mac os deeplinks

* put custom url listner on top to catch link on app opening

* put custom url listner on top to catch link on app opening

* try add custom url windows

* adjust custom url

* add docs

* merge master

* update documentation

* add comment for darwin

* add PR link

* change naming

* change naming

* change naming

* change naming

* fix formatting

* fix naming

* Fix typo

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
2023-11-02 20:26:05 +11:00