Commit Graph

251 Commits

Author SHA1 Message Date
Amr Bashir
48a7a78f80 fix(api): fix dpi types serialization (#9376)
* fix(api): fix dpi types serialization

closes #9370

* Update api-position-size-args.md

* lint

* setMinSize and setMaxSize

* Update api-position-size-args.md
2024-04-15 12:04:20 +02:00
Amr Bashir
284eca9ef2 refactor(core): scope JS resources to the webview (#9272)
* refactor(core): scope JS resources to the webview

* clippy

* change files

* swap args order

* more clippy

* just add them on each type

* clippy

* macro docs

* Update mod.rs

* use random rid

* revert resource table arg change

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-04-02 14:41:47 -03:00
Lucas Fernandes Nogueira
06833f4fa8 feat(ipc): enhance request URL checks, update wry, refactor file drop (#9100)
* feat(ipc): enhance request URL checks

* actually use req url

* fix windows, tests

* wry 0.38, file drop refactor

* wry 0.38.1

* adjust for windows [skip ci]

* wry 0.38.2 [skip ci]

* update to latest tao, wry, muda and tray-icon

* change tag

* serde

* use published crates

* downgrade cargo-platform to 0.1.7

---------

Co-authored-by: amrbashir <amr.bashir2015@gmail.com>
2024-04-01 13:03:39 -03:00
Lucas Fernandes Nogueira
e227fe02f9 feat(core): allow defining global API script on plugin build (#9156)
* feat(core): allow defining global API script on plugin build

Adds `tauri_plugin::Builder::global_api_script_path` so plugin authors can define the JavaScript global API bindings (supposed to be injected to `window.__TAURI__`) at compile time, so the string is only part of the binary when withGlobalTauri is true.
Currently this needs to be done manually at runtime (and it's always added to the binary via include_str).

* prefix variable

* use list of scripts instead of combining them

* static str

* header [skip ci]

* slice
2024-03-12 12:01:13 -03:00
Lucas Fernandes Nogueira
db0a24a973 refactor(core): use the image crate (#9132) 2024-03-11 11:46:34 -03:00
Lucas Nogueira
9247ecf2a4 chore(cli): update Cargo.lock 2024-03-07 20:24:53 -03:00
Lucas Fernandes Nogueira
ed48e2b3c7 feat(core): expose the image module (#9122)
* feat(core): expose the image module

* code review

* fix import

* fix

* fix codegen

* jsimage owned

* fmt

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2024-03-07 19:23:21 -03:00
Amr Bashir
5541aafef3 fix(core): fix emit skipping webview listeners if filter wasn't provided (#9107)
* fix(core): fix emit skipping webview listeners if filter wasn't provided

* Update .changes/core-emit-js-all-targets.md

* update api example

---------

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-03-07 20:36:52 +02:00
Lucas Fernandes Nogueira
9323fb7cda fix(utils): ToTokens impl for ResolvedCommand broken on release (#9087) 2024-03-05 14:54:24 -03:00
Lucas Fernandes Nogueira
4bf1c55b0d Revert "feat(core): use a strict CSP on the isolation iframe (#9075)" (#9078) 2024-03-04 22:22:49 -03:00
Lucas Fernandes Nogueira
7cec1049e8 feat(core): use a strict CSP on the isolation iframe (#9075) 2024-03-04 21:10:34 -03:00
Amr Bashir
77b9a508a4 feat(api): add Image class (#9042)
* feat(api): add `Image` class

* clippy

* license headers

* small cleanup

* fixes

* code review

* readd from_png_bytes and from_ico_bytes

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-03-03 04:31:08 +02:00
Amr Bashir
c68218b362 refactor(cli): add --no-bundle flag, skip bundling on invalid formats (#8990)
* refactor(cli): add `--no-bundle` flag, skip bundling on invalid formats

* enhance bundle format parsing

* lint [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-02-29 10:49:42 -03:00
Amr Bashir
d1e77acd8d refactor!(core): remove Icon enum and add Image type (#9011)
* refactor!(core): remove `Icon` enum and add `Image` type

* clippy

* revert api example config change

* Update image.rs

* fix build

* clippy

* change files

* add back removed methods as setter functions

* simplify error message

* Update .changes/runtime-icon-lifetime.md

* Update .changes/ico-featrue-flags.md

* Update core/tauri/src/image.rs

* update api lockfile

* update api ref

* lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-02-29 09:05:11 -03:00
Amr Bashir
f5f3ed5f6f fix(cli): CLI path issues on mobile project initialization (#9009)
* fix(cli): fix panic when `android init` using cargo or yarn

closes #8531

* clippy

* try with fullpath

* clippy

* move cli

* Update test-android.yml

* add to path instead

* clippy

* try moving

* use cargo subcommand

* delete unused logic [skip ci]

* truncate on init [skip ci]

* enhance binary/args check

* update change files

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-02-28 14:38:24 -03:00
Lucas Fernandes Nogueira
3657ad82f8 feat(core): allow defining permissions for the app commands (#9008)
* feat(core): allow defining permissions for the app commands

* global scope

* command scope

* write to disk

* lint

* fix path

* get autogenerated commands from generate_handler macro

* revert

* remove cli

* use const instead of empty str
2024-02-28 08:45:28 -03:00
Amr Bashir
b9e6a01879 refactor(cli): use tauri/custom-protocol instead of relying on user having custom-protocol in their cargo features (#8937)
* refactor(cli): use `tauri/custom-protocol` instead of relying on user having `custom-protocol` in their cargo features

* tauri-build dev cfg

* pass build-feature when building apk

* run beforeBuildCommand before first build for plugins

* clippy

* fix

* mut

* enhance dev/prod checks

* lint [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-02-26 15:17:45 -03:00
Lucas Fernandes Nogueira
cbd9755e09 fix: process logs not showing on iOS (#8977) 2024-02-25 17:38:27 -03:00
Lucas Nogueira
5ddea72c50 chore: update cargo-mobile2 to 0.10.2 ref #8949 2024-02-22 15:35:14 -03:00
Lucas Fernandes Nogueira
a029b9f77e feat(cli): codesign on iOS is optional for the simulator (#8910)
* feat(cli): codesign on iOS is optional for the simulator

* cargo-mobile2 0.10
2024-02-21 09:52:46 -03:00
Lucas Fernandes Nogueira
8d16a80d2f feat(codegen): allow defining additional capabilities, closes #8798 (#8802)
* refactor(core): capabilities must be referenced on the Tauri config file

* add all capabilities by default

* feat(codegen): allow defining additional capabilities, closes #8798

* undo example

* lint

* move add_capability to runtime authority

* add change files

* go through code review

* fix tests

* remove tokens option
2024-02-19 11:13:36 -03:00
Lucas Nogueira
c426c0dca2 merge from 1.x 2024-02-19 08:03:05 -03:00
Lucas Nogueira
e816a46b95 chore: update lock files 2024-02-18 23:46:17 -03:00
Amr Bashir
77f49ad55e refactor: optimize undecorated resizing handling (#8790)
* refactor: optimize undecorated resizing handling

* license

* separate modules

* fix windows

* rename export

* fix export

* same for gtk

* shared hit_test function

* change cursor on drag

* only set cursor on windows

* Revert "only set cursor on windows"

This reverts commit 03294a8430.

* fix flickering on Windows, change cursor on motion on Linux

* remove changing cursor on move on linux

* fix linux implementation

* clippy

* Windows, on left click only

* prevent on fullscreen, use OS border size on Windows

* fix build

* clippy

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-02-18 15:56:57 -03:00
Lucas Fernandes Nogueira
2f55bfecbf chore(deps): update wry to 0.36 (#8795)
* chore(deps): update wry to 0.36

* rwh 0.6

* remove raw_window_handle usage

* fix build

* fix windows test
2024-02-07 22:26:29 -03:00
Lucas Fernandes Nogueira
fb0d997117 fix(cli): regression on --config not accepting file paths (#8783)
* fix(cli): regression on --config not accepting file paths

* enhance dev server config parsing

* use serde_json::json!

* pass config to setup
2024-02-07 17:08:05 +02:00
Lucas Fernandes Nogueira
0f2789cd67 fix(build): do not rewrite unchanged schema (#8757)
* fix(build): do not rewrite unchanged schema

* typo
2024-02-04 12:45:59 +01:00
Lucas Nogueira
f1d0f452a2 chore: pin tao to 0.25 2024-02-03 11:57:54 -03:00
github-actions[bot]
88a1dd17c3 Apply Version Updates From Current Changes (#8638)
* apply version updates

* promote to beta

* fix check version

* update dependencies section [skip ci]

* update npm versions

---------

Co-authored-by: lucasfernog <lucasfernog@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-02-03 10:59:09 -03:00
Lucas Fernandes Nogueira
0cdfda2876 refactor: move plugin functionality from tauri-build to tauri-plugin (#8737)
* refactor: move plugin functionality from tauri-build to tauri-plugin

* fixes

* fix build

* move docs function

* autogenerated

* fix path
2024-02-03 08:48:57 -03:00
Lucas Fernandes Nogueira
7315189e76 chore: preserve order on schemas (#8724) 2024-02-01 09:16:10 -03:00
Amr Bashir
58fe2e812a fix: improvements and ipc fixes for loading window content using custom protocol (#8670)
* fix: improvements and ipc fixes for loading window content using custom protocol

closes #5478

* Discard changes to tooling/cli/Cargo.lock

* clippy

* fix tests

* typo

* fix webviewurl deserialize

* resolve todo, fixes

* fmt

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-01-31 09:38:25 -03:00
Lucas Fernandes Nogueira
57e3d43d96 feat(acl): generate schema for scope (#8690)
* feat(acl): generate schema for scope

* allow plugin to define its global scope schema

* refactor to use schemas folder instead of individual files

* change signature

* delete .schema.json files
2024-01-29 13:36:31 -03:00
Lucas Fernandes Nogueira
c77b40324e refactor(core): add support to multiple webviews on a Tauri window (#8280)
* feat: update to latest wry

* wry dev branch [skip ci]

* fix linux [skip ci]

* refactor(runtime): split webview and window types

* split dispatch

* implement create_webview

* move webview message

* wip webview mod

* create webview manager, finish webview struct and builder

* fix tests and docs

* rename WindowUrl to WebviewUrl

* update examples

* event refactor

* update JS API

* fix events

* update example

* add WebviewWindow class on JS

* fix macos build

* allow creating window+webview on the same runtime call

* rename tauri://window-created to tauri://webview-created

* Window::add_child

* use inner_size from webview on macOS

* add multiwebview example

* automatically resize webviews on window resize

* fix tests

* set_position, set_size

* position, size getters

* set_focus

* add close fn

* update mock runtime

* lint [skip ci]

* fix inner_size getter [skip ci]

* import hwnd [skip ci]

* update webview bound ratios on set_size/set_position

* add auto_resize option

* fix android

* fix build on windows

* typo

* with_webview isnt desktop only

* add WebviewWindow rust struct (and builder)

* fix build on android

* license header

* fix macos/windows

* fix macos build

* resolve todo

* handle window not found

* hide unstable features

* document unstable feature [skip ci]

* webview plugin permissions

* hide more stuff

* fix doctests

* typos

* add change files

* fix examples

* rename hook
2024-01-24 11:05:18 -03:00
Lucas Fernandes Nogueira
74a2a6036a chore: add change files for #8428 (#8661) 2024-01-23 13:19:51 -03:00
tweidinger
3c2f79f6f3 Tauri ACL/Allowlist v2 Implementation and Plugin System Refactor (#8428)
* tauri-plugin concept

* wip

* move command module to its own directory

* wip: new command traits and generated code

* wip: whip

* wip: static dispatch

there is a man standing behind me

* wip

* re-add authority

* fix build [skip ci]

* parse plugin permissions

* merge permission files [skip ci]

* parse capabilities [skip ci]

* resolve acl (untested) [skip ci]

* split functionality, add some docs

* remove command2 stuff

* actually check runtime authority

* small fixes [skip ci]

* add function to auto generate basic permission for a command [skip ci]

* retrieve command scope, implement CommandArg [skip ci]

* fix tests [skip ci]

* global scope

* lint

* license headers [skip ci]

* skip canonicalize

* separate scope type in example

* remove inlinedpermission struct [skip ci]

* permission file schema

* capabilities schema

* move items from tauri-plugin to tauri-utils

this allows tauri-plugin to depend on tauri directly again
which will be used by the runtime feature as a superset to
existing plugin traits

* enable schema and glob [skip ci]

* fix glob [skip ci]

* fix capability schema [skip ci]

* enhance schema for permission set possible values [skip ci]

* permission set can reference other sets [skip ci]

* setup tests for resolving ACL

* fixture for permission set [skip ci]

* remote context test and small fix[skip ci]

* ignore empty scope [skip ci]

* code review [skip ci]

* lint [skip ci]

* runtime fixes

* readd schema feature on tauri-config-schema [skip ci]

* remove plugin example from workspace, it breaks workspace features resolution [skip ci]

* scope as array, add test [skip ci]

* accept new shapshot [skip ci]

* core plugin permissions, default is now a set

* license headers

* fix  on windows

* update global api

* glob is no longer optional on tauri-utils

* add missing permissions on api example [skip ci]

* remove ipc scope and dangerous remote access config

* lint

* fix asset scope usage

* create out dir [skip ci]

* reuse cargo_pkg_name [skip ci]

* capability window glob pattern [skip ci]

* add platforms for capability [skip ci]

* per platform schema [skip ci]

* lint [skip ci]

* rename allowlist build mod [skip ci]

* check restricted visibility

* simplify capability target [skip ci]

* hide codegen build behind tauri-build::try_run

* optimize build scripts [skip ci]

* fix tests

* tests for RuntimeAuthority::resolve_access

* remote domain glob pattern

* lint

---------

Co-authored-by: Chip Reed <chip@chip.sh>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Lucas Nogueira <lucas@crabnebula.dev>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2024-01-22 21:24:15 -03:00
Lucas Nogueira
a9b87c057d Merge branch '1.x' into dev 2023-12-19 13:52:53 -03:00
Lucas Fernandes Nogueira
0d0501cb7b refactor(clipboard): use arboard instead of tao closes #8177 (#8394)
* refactor(clipboard): use arboard instead of tao closes #8177

* update api lock

* add change file
2023-12-14 13:41:20 -03:00
Lucas Nogueira
5e05236b49 feat(core): add tracing for vital functionality closes #5204 (#8289)
* feat(core): add tracing for vital functionality

* Update core/tauri-runtime-wry/src/lib.rs [skip ci]

* Update Cargo.toml [skip ci]

* tracing feature

* wry 0.24.6

* add change tag

* add tracing to CI test

* enhance spans for update check

* remove app from debug impl
2023-11-27 16:56:46 +02:00
Lucas Fernandes Nogueira
ebc3e78e68 feat: update to latest wry (#8213)
Co-authored-by: amrbashir <amr.bashir2015@gmail.com>
2023-11-21 12:32:06 -03:00
renovate[bot]
aa1d67ab75 chore(deps) Update Tauri Core (dev) (#8227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-11-19 14:21:12 -03:00
Amr Bashir
f93148eac0 feat: add tray and menu javascript APIs and events, closes #6617 (#7709)
Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app>
Co-authored-by: Fabian-Lars <fabianlars@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-11-19 08:38:24 -03:00
renovate[bot]
b6ed4ecb37 chore(deps) Update Rust crate syn to v2 (dev) (#7634)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-11-13 08:20:19 -03:00
renovate[bot]
e9aa7276e9 chore(deps) Update Tauri Core (dev) (#7631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-11-09 14:15:41 -03:00
Lucas Fernandes Nogueira
b5f40ae58d fix(core): global events regression from #7996 closes #8146 (#8147) 2023-11-07 09:59:09 -03:00
Lucas Fernandes Nogueira
0601d5dddb fix(docs): set the --cfg docsrs arg for docs.rs build (#8123) 2023-10-28 08:04:35 -03:00
Lucas Fernandes Nogueira
2b6ffe0fd1 chore: update plugins-workspace branch usage from next to v2 (#8120) 2023-10-27 00:17:23 -03:00
Olivier Lemasle
9ed400a85c chore(ci): Replace unmaintained actions-rs GH actions, closes #8078 (#8093)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-10-26 15:27:52 -03:00
DK Liao
9580df1d7b chore(deps): upgrade gtk to 0.18 (#8084)
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2023-10-24 12:26:24 -03:00
Amr Bashir
a0f7b88fd8 build(api.js): simplify output JS files (#8025)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
2023-10-23 18:22:00 -03:00