tauri@1.0.0-rc.0
- The dialog allowlist now includes flags for the
message
,ask
andconfirm
APIs. -
- Breaking change: Renamed
tauri::Event
totauri::RunEvent
- Breaking change: Renamed
- Exported
tauri::Event
andtauri::EventHandler
so you can define a function and pass it toWindow::listen
- 15358b18 Expose event interface. fixes #2733 (#3321) on 2022-02-04
- The
tauri::api
moduleshttp
,notification
,dialog
, andprocess::Command
APIs are now hidden behind a feature flag,http-api
,notification
,dialog
andcommand
, respectively. - Add
title
option to file open/save dialogs. - Added
any_thread()
to thetauri::Builder
to run applications on any thread (only exposed on Linux and Windows). - Enable CORS on the
asset
protocol. - The
asset://
custom protocol is only defined when either theapi-all
,protocol-all
orprotocol-asset
feature flags are enabled. These feature flags are accessible with thetauri.conf.json
allowlist. - Expose the
asset_resolver
API on theApp
andAppHandle
structs. - Breaking change: Refactored the types returned from the
async_runtime
module. - Added
tauri::async_runtime::set
method, allowing to share your tokio runtime with Tauri. - Added
tauri::async_runtime::spawn_blocking
API. - The
callback
anderror
invoke fields, along with othertransformCallback
usages, are now validated to be numeric. - Change
Error::ParseCliArguments(clap::Error)
toError::ParseCliArguments(String)
becauseclap::Error
is notSend
. - The
api::process::Command
APIs are now hidden behind thecommand
feature flag. - Add
tauri::api::path::log_dir
function to access the suggested log directory path. - The
process
,path
andupdater
APIs now takes atauri::Env
argument, used to force environment variables load on startup to prevent env var update attacks.- 7209fdf7 refactor(core): load APPIMAGE and APPDIR env vars on startup [TRI-007] [TRI-041] on 2022-01-09
- Now
resolve()
,join()
andnormalize()
from thepath
module, won’t throw errors if the path doesn’t exist, which matches NodeJS behavior. - Breaking change: Return
Window
onApp
andAppHandle
’screate_window
function. - Apply
nonce
toscript
andstyle
tags and set them on theCSP
(script-src
andstyle-src
fetch directives). - The path returned from
tauri::api::process::current_binary
is now cached when loading the binary. - Added an API to use a custom invoke system to receive and respond to commands (
Builder#invoke_system
). - Inject configured
CSP
ondata:
URLs. - Emit
tauri://*
events to Rust listeners. - Emit
tauri://window-created
event for windows created on the backend. - Enable non-session cookie persistence on Linux.
- Expose
tauri::api::ipc::{serialize_js_with, serialize_js}
functions. - Resolve
asset
protocol HTTP request instead of panicking if the file does not exist or cannot be read. - Avoid
async_runtime::block_on
panics when used along another tokio runtime. - Prevent window closing if
tauri://close-requested
is listened on the JS layer. Users must callappWindow.close()
manually when listening to that event. - Fixes a deadlock when creating a window from a menu event handler.
- Fixes the dialog
defaultPath
usage on Linux. - Fixes
WindowEvent::Focus
andWindowEvent::Blur
events not firing. - Fixes
tauri://focus
andtauri://blur
events not firing. - Use webview’s inner_size instead of window’s value to get the correct size on macOS.
- Fixes resource directory resolution on Linux.
- Fixes the menu id mapping not reflecting the current window.
Manager::once_global
andWindow::once
allowFnOnce
callbacks.- Properly check if document is loaded before invoking commands.
- Initialize system tray before windows so
tray_handle
can be accessed on command handlers.- dbe0d21b fix(core): initialize system tray before app windows on 2021-08-31
- Reimplement
remove_system_tray
on Windows to drop theSystemTray
to run its cleanup code. - Immediately listen to
tauri://window-created
event to catch it before the application triggers it. - The
tauri::Window#emit
function now correctly sends the event to all windows that has a registered listener. Breaking change:Window#emit_and_trigger
andWindow#emit
now requires the payload to be cloneable. - Allow using a fixed version for the Webview2 runtime via the
tauri > bundle > windows > webviewFixedRuntimePath
config option. - The updater
pubkey
is now a required field for security reasons. Sign your updates with thetauri signer
command. tauri::api::HttpRequestBuilder::new
now returns aResult
to validate the url.- Added the
isolation
pattern.- d5d6d2ab Isolation Pattern (#43) Co-authored-by: Ngo Iok Ui (Wu Yu Wei) <wusyong9104@gmail.com> Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app> on 2022-01-17
- Added
abort
method totauri::async_runtime::JoinHandle
. - Adds support for using JSON5 format for the
tauri.conf.json
file, along with also supporting the.json5
extension.
Here is the logic flow that determines if JSON or JSON5 will be used to parse the config:
- Check if
tauri.conf.json
exists a. Parse it withserde_json
b. Parse it withjson5
ifserde_json
fails c. Return originalserde_json
error if all above steps failed - Check if
tauri.conf.json5
exists a. Parse it withjson5
b. Return error if all above steps failed - Return error if all above steps failed
- 995de57a Add seamless support for using JSON5 in the config file (#47) on 2022-02-03
- Allow preventing opening the default browser on a click on an
<a target="_blank">
element viastopImmediatePropagation()
. - The
run_return
API is now available on Linux. - Allow window, global shortcut and clipboard APIs to be called on the main thread.
- Add
Menu::with_items
constructor, taking an iterator ofMenuEntry
. - The updater now expects signatures created with the latest CLI release.
- Change event loop callbacks definition to allow callers to move in mutable values.
- Fixes
Notification.requestPermission()
deadlock.- 48f3768c fix(core):
Notification.requestPermission()
deadlock regression on 2021-08-24
- 48f3768c fix(core):
- Added
Window#open_devtools
API. - Add a
plugin::Builder
struct to make plugin creation more convenient. - Added
on_event
on thePlugin
trait, which allows a plugin to react to the event loop. - Prevent path traversal on the file system APIs.
- Breaking change: Add
macos-private-api
feature flag, enabled viatauri.conf.json > tauri > macOSPrivateApi
. - Add
raw_headers
totauri::api::http::ResponseData
. - Implement
raw_window_handle::RawWindowHandle
fortauri::Window
onWindows
andmacOS
. Thetauri::api::dialog::window_parent
function was removed since now you can use the window directly. - Refactor
create_tao_window
API to returnWeak<Window>
instead ofArc<Window>
.- c1494b35 refactor: return Weak<Window> on create_tao_window on 2021-08-31
- Added the
tauri::api::dialog::blocking
module. - The notification endpoint now checks for the permission flag and requests if the value is not set.
- Breaking change: The
WindowEvent::CloseRequested
variant now includeslabel
andsignal_tx
fields to allow preventing closing the window. - Breaking change: Move
__currentWindow
and__windows
values fromwindow.__TAURI__
towindow.__TAURI_METADATA__
. - Remove the
BaseDirectory::Current
enum variant for security reasons.- 696dca58 refactor(core): remove
BaseDirectory::Current
variant on 2022-01-26
- 696dca58 refactor(core): remove
- Breaking change: Remove default webview window when
tauri.conf.json > tauri > windows
is not set. - Breaking change: Renamed the
rpc
module toipc
. - Expose
run_on_main_thread
APIs onWindow
andAppHandle
. - The minimum Rust version is now
1.56
. - The minimum Rust version is now 1.57.
- d5d6d2ab Isolation Pattern (#43) Co-authored-by: Ngo Iok Ui (Wu Yu Wei) <wusyong9104@gmail.com> Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.app> on 2022-01-17
- Scopes the
filesystem
APIs from the webview access usingtauri.conf.json > tauri > allowlist > fs > scope
. Scopes theasset
protocol access usingtauri.conf.json > tauri > allowlist > protocol > assetScope
. Scopes thehttp
APIs from the webview access usingtauri.conf.json > tauri > allowlist > http > scope
. Scopes theshell
execute API from the webview access usingtauri.conf.json > tauri > allowlist > shell > scope
. Additionally, check thetauri.conf.json > tauri > bundle > externalBin
to prevent access to unknown sidecars. Builder#setup
closure type changed fromFn
toFnOnce
.- The
tauri::api::shell::open
’swith
argument is now an enum value instead of any string. - The
shell
allowlist now includes asidecar
flag, which enables the use of theshell
API to execute sidecars. - Breaking change: The sidecar’s target triple suffix is now removed at build time.
- Fix streaming of small files using the
asset
protocol. - Add
set_menu
API ontauri::SystemTrayHandle
. - Adds
unlisten
function to theWindow
struct. - Force updater endpoint URL to use
https
on release builds. - Validate the
std::env::current_exe
return value ifAPPDIR
orAPPIMAGE
environment variables are set. - The event name is now validated. On a IPC message, it returns an error if it fails validation; on the Rust side, it panics.
It must include only alphanumeric characters,
-
,/
,:
and_
. - The window label is now validated and must be alphanumeric, resulting in a panic if it isn’t.
- Allow
tauri.conf.json > package > version
to specify a path to apackage.json
file and pull the version from it. - Added
clipboard
field on theWebviewAttributes
struct, which must be set totrue
to enable clipboard access on the webview. - Replace all of the
winapi
crate references with thewindows
crate, and replacewebview2
andwebview2-sys
withwebview2-com
andwebview2-com-sys
built with thewindows
crate. This goes along with updates to the TAO and WRYnext
branches. - Show
Ok/Cancel
buttons instead ofYes/No
when executingwindow.confirm
. - Update the
windows
crate to 0.25.0, which comes with pre-built libraries. WRY and Tao can both reference the same types directly from thewindows
crate instead of sharing bindings inwebview2-com-sys
.
© 2024 Tauri Contributors. CC-BY / MIT