CHANGELOG.md 361 KB

Changelog

[2.0.4]

New Features

  • bcf279278 (#11354) On Windows, Add ContextMenu::hpopupmenu method to get the HMENU used for popups and tray icon menu.

Enhancements

  • e3b09be7f (#11362) Added Builder::channel_interceptor to intercept messages to be sent to the frontend, complemeting the Builder::invoke_system interface.
  • 3cb73d08c (#11355) Mark the event commands as async so they do not block the main thread.

Bug Fixes

  • f3f521f03 (#11348) Fix TAURI_ANDROID_PACKAGE_UNESCAPED not set panic during compilation for Android when using an older tauri cli.

Dependencies

  • Upgraded to tauri-runtime-wry@2.1.1

[2.0.3]

New Features

Bug Fixes

Dependencies

  • Upgraded to tauri-runtime@2.1.0
  • Upgraded to tauri-runtime-wry@2.1.0

[2.0.2]

Enhancements

  • 03e759042 (#11235 by @lucasfernog) Added App::invoke_key and AppHandle::invoke_key for custom invoke systems that rely on manual Webview::on_message calls.

[2.0.1]

What's Changed

Dependencies

  • Upgraded to tauri-utils@2.0.1
  • Upgraded to tauri-runtime@2.0.1
  • Upgraded to tauri-runtime-wry@2.0.1
  • Upgraded to tauri-macros@2.0.1
  • Upgraded to tauri-build@2.0.1

[2.0.0]

What's Changed

Dependencies

  • Upgraded to tauri-utils@2.0.0
  • Upgraded to tauri-runtime@2.0.0
  • Upgraded to tauri-runtime-wry@2.0.0
  • Upgraded to tauri-macros@2.0.0
  • Upgraded to tauri-build@2.0.0

[2.0.0-rc.17]

Breaking Changes

  • 354be36d4 (#11163 by @amrbashir) Changed uri scheme protocol handler to take UriSchemeContext as first argument instead of AppHandle. UriSchemeContext can be used to access an app handle or the webview label that made the request. The following methods are affected:

    • tauri::Builder::register_uri_scheme_protocol
    • tauri::Builder::register_asynchronous_uri_scheme_protocol
    • tauri::plugin::Builder::register_uri_scheme_protocol
    • tauri::plugin::Builder::register_asynchronous_uri_scheme_protocol

[2.0.0-rc.16]

New Features

Bug Fixes

Dependencies

  • Upgraded to tauri-runtime-wry@2.0.0-rc.14
  • Upgraded to tauri-runtime@2.0.0-rc.13
  • Upgraded to tauri-utils@2.0.0-rc.13
  • Upgraded to tauri-macros@2.0.0-rc.12
  • Upgraded to tauri-build@2.0.0-rc.13

Breaking Changes

  • 0b4495996 (#11121 by @amrbashir) Simplified emitted tray event JS value and updated TrayIconEvent type definition to match it.

[2.0.0-rc.15]

New Features

  • ad294d274 (#11032 by @amrbashir) Add app > windows > create option to choose whether to create this window at app startup or not.

Enhancements

  • e7fd676c2 (#11025 by @lucasfernog) Inject __INVOKE_KEY__ into custom invoke systems so their implementations can properly construct tauri::webview::InvokeRequest.

Dependencies

  • Upgraded to tauri-utils@2.0.0-rc.12
  • Upgraded to tauri-runtime@2.0.0-rc.12
  • Upgraded to tauri-runtime-wry@2.0.0-rc.13
  • Upgraded to tauri-macros@2.0.0-rc.11
  • Upgraded to tauri-build@2.0.0-rc.12

Breaking Changes

  • 551e0624a (#11027 by @lucasfernog) Remove the responder part of a custom invoke system now that the responder can be set directly in the tauri::WebviewWindow::on_message function.

[2.0.0-rc.14]

Bug Fixes

[2.0.0-rc.13]

Enhancements

Dependencies

  • Upgraded to tauri-runtime-wry@2.0.0-rc.12

Breaking Changes

  • bc4804d48 (#10924 by @madsmtm) Change the pointer type of PlatformWebview's inner, controller, ns_window and view_controller to c_void, to avoid publically depending on objc.

[2.0.0-rc.12]

New Features

Enhancements

Bug Fixes

Dependencies

  • Upgraded to tauri-build@2.0.0-rc.11
  • Upgraded to tauri-utils@2.0.0-rc.11
  • Upgraded to tauri-runtime@2.0.0-rc.11
  • Upgraded to tauri-runtime-wry@2.0.0-rc.11
  • Upgraded to tauri-macros@2.0.0-rc.10

Breaking Changes

[2.0.0-rc.11]

Bug Fixes

Dependencies

  • Upgraded to tauri-utils@2.0.0-rc.10
  • Upgraded to tauri-runtime@2.0.0-rc.10
  • Upgraded to tauri-runtime-wry@2.0.0-rc.10
  • Upgraded to tauri-macros@2.0.0-rc.9
  • Upgraded to tauri-build@2.0.0-rc.10

[2.0.0-rc.10]

Dependencies

  • Upgraded to tauri-utils@2.0.0-rc.9
  • Upgraded to tauri-runtime@2.0.0-rc.9
  • Upgraded to tauri-runtime-wry@2.0.0-rc.9
  • Upgraded to tauri-macros@2.0.0-rc.8
  • Upgraded to tauri-build@2.0.0-rc.9
  • d9c8d3cc8 (#10902 by @Legend-Master) Update infer to 0.16, tray icon to 0.17, urlpattern to 0.3, image to 0.25

Breaking Changes

  • faa259bac (#10907 by @lucasfernog) The Assets::iter function now must return a iterator with Item = (Cow<'_, str>, Cow<'_, [u8]>) to be more flexible on contexts where the assets are not 'static.

[2.0.0-rc.9]

New Features

Bug Fixes

What's Changed

Dependencies

  • Upgraded to tauri-runtime-wry@2.0.0-rc.8
  • Upgraded to tauri-utils@2.0.0-rc.8
  • Upgraded to tauri-runtime@2.0.0-rc.8
  • Upgraded to tauri-macros@2.0.0-rc.7
  • Upgraded to tauri-build@2.0.0-rc.8

Breaking Changes

  • 5048a7293 (#10840 by @lucasfernog) The linux-ipc-protocol feature is now always enabled, so the Cargo feature flag was removed. This increases the minimum webkit2gtk version to a release that does not affect the minimum target Linux distros for Tauri apps.

[2.0.0-rc.8]

Enhancements

[2.0.0-rc.7]

New Features

Enhancements

  • f86a8146a (#10761 by @rdlabo) Added getArgs and getRawArgs methods to the plugin Invoke class (Kotlin and Swift), which lets you parse the arguments manually instead of through the parseArgs method.

Bug Fixes

Dependencies

  • Upgraded to tauri-utils@2.0.0-rc.7
  • Upgraded to tauri-build@2.0.0-rc.7
  • Upgraded to tauri-runtime@2.0.0-rc.7
  • Upgraded to tauri-runtime-wry@2.0.0-rc.7
  • Upgraded to tauri-macros@2.0.0-rc.6

[2.0.0-rc.6]

What's Changed

Dependencies

  • Upgraded to tauri-utils@2.0.0-rc.6
  • Upgraded to tauri-build@2.0.0-rc.6
  • Upgraded to tauri-runtime-wry@2.0.0-rc.6
  • Upgraded to tauri-runtime@2.0.0-rc.6
  • Upgraded to tauri-macros@2.0.0-rc.5

[2.0.0-rc.5]

Dependencies

  • Upgraded to tauri-utils@2.0.0-rc.5
  • Upgraded to tauri-runtime@2.0.0-rc.5
  • Upgraded to tauri-runtime-wry@2.0.0-rc.5
  • Upgraded to tauri-macros@2.0.0-rc.5
  • Upgraded to tauri-build@2.0.0-rc.5

[2.0.0-rc.4]

Enhancements

Bug Fixes

  • 5c335ae9a (#10648 by @Flakebi) Prevent build script from rerunning unnecessarily by only writing files when the content changes.

Dependencies

  • Upgraded to tauri-build@2.0.0-rc.4
  • Upgraded to tauri-utils@2.0.0-rc.4
  • Upgraded to tauri-runtime@2.0.0-rc.4
  • Upgraded to tauri-runtime-wry@2.0.0-rc.4
  • Upgraded to tauri-macros@2.0.0-rc.4

[2.0.0-rc.3]

Bug Fixes

  • b1d9ffa1a (#10582 by @lucasfernog) Fix IPC fallback (postMessage implementation when custom protocol fails) hanging when sending responses.

What's Changed

Dependencies

  • Upgraded to tauri-build@2.0.0-rc.3
  • Upgraded to tauri-utils@2.0.0-rc.3
  • Upgraded to tauri-runtime@2.0.0-rc.3
  • Upgraded to tauri-runtime-wry@2.0.0-rc.3
  • Upgraded to tauri-macros@2.0.0-rc.3
  • d39c392b7 (#10655 by @lucasfernog) Update tao to 0.29 and wry to 0.42.

Breaking Changes

  • d0510f52e (#10641 by @lucasfernog) Added a dedicated type for IPC response body InvokeResponseBody for performance reasons. This is only a breaking change if you are directly using types from tauri::ipc.

[2.0.0-rc.2]

Dependencies

  • Upgraded to tauri-utils@2.0.0-rc.2
  • Upgraded to tauri-runtime@2.0.0-rc.2
  • Upgraded to tauri-runtime-wry@2.0.0-rc.2
  • Upgraded to tauri-macros@2.0.0-rc.2
  • Upgraded to tauri-build@2.0.0-rc.2

[2.0.0-rc.1]

Dependencies

  • Upgraded to tauri-utils@2.0.0-rc.1
  • Upgraded to tauri-runtime@2.0.0-rc.1
  • Upgraded to tauri-runtime-wry@2.0.0-rc.1
  • Upgraded to tauri-macros@2.0.0-rc.1
  • Upgraded to tauri-build@2.0.0-rc.1

[2.0.0-rc.0]

Bug Fixes

  • 6755af230(#10435) Fix Specta remote implementation target for Channel.
  • 24445d71d(#10432) Fixes asset resolving when not using the compression feature.

Enhancements

  • 1e0793b68 (#10357) Enhance AssetResolver::get in development mode by reading distDir directly as a fallback to the embedded assets.
  • 7aeac39e7 (#10397) Make the set of gtk application id optional, to allow more then one instance of the app running at the same time.
  • cf994a6bb (#10405) Add tauri::plugin::Builder::try_build to allow plugins to check if their TauriPlugin initialization is valid.

Security fixes

  • 426d14bb4 (#10423) Explicitly check that the main frame's origin is the sender of Isolation Payloads
  • 289ae5555 (#10386) Re-enable TLS checks that were previously disabled to support an insecure HTTPS custom protocol on Android which is no longer used.

Dependencies

  • Upgraded to tauri-utils@2.0.0-rc.0
  • Upgraded to tauri-macros@2.0.0-rc.0
  • Upgraded to tauri-build@2.0.0-rc.0
  • Upgraded to tauri-runtime@2.0.0-rc.0
  • Upgraded to tauri-runtime-wry@2.0.0-rc.0

Breaking Changes

  • 758d28c8a (#10390) Core plugin permissions are now prefixed with core:, the core:default permission set can now be used and the core plugin name is reserved. The tauri migrate tool will automate the migration process, which involves prefixing all app, event, image, menu, path, resources, tray, webview and window permissions with core:.

[2.0.0-beta.25]

New Features

  • da25f7353 (#10242 by @amrbashir) Add APIs to enable setting window size constraints separately:

    • Added WindowBuilder::inner_size_constraints and WebviewWindowBuilder::inner_size_constraints which can be used for setting granular constraints.
    • Added WindowSizeConstraints struct
    • Added Window::set_size_constraints and WebviewWindow::set_size_constraints

Bug Fixes

  • e1776946a (#10362 by @Brendonovich) Use specta rc.15'sderive` feature which fixes build issues in docs.rs.
  • da25f7353 (#10242 by @amrbashir) Apply minWidth, minHieght, maxWidth and maxHeight constraints separately, which fixes a long standing bug where these constraints were never applied unless width and height were constrained together.

What's Changed

  • 9546548ec (#10297 by @pewsheen) On macOS, set default titlebar style to Visible to prevent webview move out of the view.

Dependencies

  • Upgraded to tauri-runtime-wry@2.0.0-beta.21
  • Upgraded to tauri-runtime@2.0.0-beta.21

[2.0.0-beta.24]

New Features

Enhancements

Bug Fixes

  • 4c239729c (#10167 by @amrbashir) Fix deserialization of raw invoke requests when using isolation pattern.
  • 55733aba9 (#10176 by @lucasfernog) Move PluginApi::register_ios_plugin behind the wry Cargo feature as Webview::with_webview is only available when that feature is enabled.

Dependencies

  • Upgraded to tauri-macros@2.0.0-beta.19
  • Upgraded to tauri-build@2.0.0-beta.19
  • Upgraded to tauri-runtime-wry@2.0.0-beta.20
  • Upgraded to tauri-utils@2.0.0-beta.19
  • Upgraded to tauri-runtime@2.0.0-beta.20

Breaking Changes

  • ba9590aa9 (#9640 by @amrbashir) Added Emitter and Listener traits that defines what an emitter or a listener can do, this however comes with a few breaking changes:

    • Removed Manager::listen_any, use Listener::listen_any instead.
    • Removed Manager::once_any, use Listener::once_any instead.
    • Removed Manager::unlisten, use Listener::unlisten instead.
    • Removed Manager::emit, use Emitter::emit instead.
    • Removed Manager::emit_to, use Emitter::emit_to instead.
    • Removed Manager::emit_filter, use Emitter::emit_filter instead.
    • Removed App/AppHandle::listen, WebviewWindow::listen, Window::listen and Webview::listen, use Listener::listen instead.
    • Removed App/AppHandle::once, WebviewWindow::once, Window::once and Webview::once, use Listener::once instead.
    • Removed App/AppHandle::unlisten, WebviewWindow::unlisten, Window::unlisten and Webview::unlisten, use Listener::unlisten instead.
  • 261c9f942 (#10170 by @amrbashir) Renamed DragDropEvent enum variants to better convey when they are triggered:

    • DragDropEvent::Dragged -> DragDropEvent::Enter
    • DragDropEvent::DragOver -> DragDropEvent::Over
    • DragDropEvent::Dropped -> DragDropEvent::Drop
    • DragDropEvent::Cancelled -> DragDropEvent::Leave

This also comes with a change in the events being emitted to JS and Rust event listeners:

  • tauri://drag -> tauri://drag-enter
  • tauri://drop-over -> tauri://drag-over
  • tauri://drop -> tauri://drag-drop
  • tauri://drag-cancelled -> tauri://drag-leave
  • 2b1ceb40d (#10229 by @amrbashir) Renamed the JS getCurrent and getAll functions to a clearer name to avoid ambiguity:

    • getCurrent in window module has been renamed to getCurrentWindow
    • getCurrent in webview module has been renamed to getCurrentWebview
    • getCurrent in webviewWindow module has been renamed to getCurrentWebviewWindow
    • getAll in window module has been renamed to getAllWindows
    • getAll in webview module has been renamed to getAllWebviews
    • getAll in webviewWindow module has been renamed to getAllWebviewWindows
  • 57612ab24 (#10139 by @Brendonovich) Add TSend generic to ipc::Channel for typesafe send calls and type inspection in tauri-specta

[2.0.0-beta.23]

New Features

  • 148f04887 (#9979) Add defaultWindowIcon to the JS app module to retrieve the default window icon in JS.
  • 5b769948a (#9959) Add include_image macro to help embedding instances of Image struct at compile-time in rust to be used with window, menu or tray icons.
  • ddaabda36 (#9922) Add WebviewWindowBuilder::on_download.

Enhancements

  • cee0bfcd6 (#10092) Make tray:default and menu:default include all tray and menu permissions

Bug Fixes

  • e93ca1df3 (#10138) Fix InvokeBody::deserialize method deserialization for InvokeBody::Raw variant
  • e6e17ad1c (#9954) Add std feature to raw-window-handle crate so that using default-features = false on tauri crate can work
  • f29b78811 (#9862) On Windows, handle resizing undecorated windows natively which improves performance and fixes a couple of annoyances with previous JS implementation:

    • No more cursor flickering when moving the cursor across an edge.
    • Can resize from top even when data-tauri-drag-region element exists there.
    • Upon starting rezing, clicks don't go through elements behind it so no longer accidental clicks.

What's Changed

  • 669b9c6b5 (#9621) Set the gtk application to the identifier defined in tauri.conf.json to ensure the app uniqueness.

Dependencies

  • Upgraded to tauri-utils@2.0.0-beta.18
  • Upgraded to tauri-build@2.0.0-beta.18
  • Upgraded to tauri-macros@2.0.0-beta.18
  • Upgraded to tauri-runtime-wry@2.0.0-beta.19
  • Upgraded to tauri-runtime@2.0.0-beta.19
  • f955f7b49 (#9929) Switch from dirs_next to dirs as dirs_next is now unmaintained while dirs is
  • d4c908cfb (#10048) Update windows crate to version 0.57 and webview2-com crate to version 0.31

Breaking Changes

  • 3afe82894 (#10134) Changed WebviewWindow::navigate and Webview::navigate method signature to return a Result

[2.0.0-beta.22]

Bug Fixes

  • dfd05441c(#9860) Revert adding app-region: drag to HTML elements with data-tauri-drag-region on Windows as it has a few issues:

    • Doesn't allow right click, as it will always show the system context menu on right click.
    • data-tauri-drag-region works only if the click was on an element that has it, this allows buttons in the custom titlebar to work, however app-region: drag will treat the whole area as a titlebar won't even allow clicks on buttons.

[2.0.0-beta.21]

New Features

  • 8a1ae2dea(#9843) Added an option to use a Xcode project for the iOS plugin instead of a plain SwiftPM project.

Bug Fixes

  • 276c4b143(#9832) On Windows, fix wrong menubar theme when window is using an explicit theme.
  • ccc3ea729(#9646) Parse the correct platform tauri.<platform>.conf.json config file when building or developing for mobile.
  • aa55e0335(#9899) Set default window origin to null. Prevent window crash when loading about:blank.

What's Changed

  • 9ac930380(#9850) Emit cargo:rustc-check-cfg instruction so Cargo validates custom cfg attributes on Rust 1.80 (or nightly-2024-05-05).
  • 80aa50498(#9870) Updated Android target SDK to 34.

Dependencies

  • Upgraded to tauri-build@2.0.0-beta.17
  • Upgraded to tauri-macros@2.0.0-beta.17
  • Upgraded to tauri-utils@2.0.0-beta.17
  • Upgraded to tauri-runtime@2.0.0-beta.18
  • Upgraded to tauri-runtime-wry@2.0.0-beta.18

Breaking Changes

  • e8f6eb59a(#9552) Include binary path in Env.args_os, previously it was skipped.
  • 1df5cdeb0(#9858) Use tauri.conf.json > identifier to set the PackageName in Android and BundleId in iOS.
  • aaecb6a72(#9890) Renamed dev function to is_dev and marked it as const fn
  • c4410daa8(#9777) This release contains breaking changes to the tray event structure because of newly added events:

    • Changed TrayIconEvent to be an enum instead of a struct.
    • Added MouseButtonState and MouseButton enums.
    • Removed ClickType enum and replaced it with MouseButton enum.
    • Added MouseButtonState enum.

[2.0.0-beta.20]

New Features

  • ae6b13dfc(#9789) Add app-region: drag to HTML elements with data-tauri-drag-region on Windows, only WebView2 123+, which should fix dragging using touch.
  • ec0e092ec(#9770) Add App/AppHandle/Window/Webview/WebviewWindow::monitor_from_point(x, y) getter to get the monitor from a given point.

Enhancements

Bug Fixes

Security fixes

  • d950ac123 Only process IPC commands from the main frame.

Dependencies

  • Upgraded to tauri-utils@2.0.0-beta.16
  • Upgraded to tauri-runtime-wry@2.0.0-beta.17
  • Upgraded to tauri-runtime@2.0.0-beta.17
  • Upgraded to tauri-macros@2.0.0-beta.16
  • Upgraded to tauri-build@2.0.0-beta.16

[2.0.0-beta.19]

New Features

  • 78839b6d2(#4865) Add RunEvent::Reopen for handle click on dock icon on macOS.

Bug Fixes

  • fedca7386(#9720) Fix IPC tracing format incompatible between the custom protocol and the postMessage implementations.

Dependencies

  • Upgraded to tauri-runtime@2.0.0-beta.16
  • Upgraded to tauri-runtime-wry@2.0.0-beta.16
  • Upgraded to tauri-utils@2.0.0-beta.15
  • Upgraded to tauri-macros@2.0.0-beta.15
  • Upgraded to tauri-build@2.0.0-beta.15

Breaking Changes

  • 783ef0f2d(#9647) Changed WebviewWindow::url and Webview::url getter to return a result.

[2.0.0-beta.18]

New Features

  • 07ff78c2d(#9615) Add TrayIcon::rect method to retrieve the tray icon rectangle

Enhancements

  • 7f6d2698c(#9631) Improve the error message that is shown when deserializing the Tauri plugin config.
  • 8a71858eb(#9630) Provide a default for the runtime generic on Menu, MenuItem, Submenu, PredefinedMenuItem, CheckMenuItem and IconMenuItem.
  • 8a71858eb(#9630) Provide a default for the runtime generic on TrayIcon.

Dependencies

  • Upgraded to tauri-utils@2.0.0-beta.14
  • Upgraded to tauri-runtime@2.0.0-beta.15
  • Upgraded to tauri-runtime-wry@2.0.0-beta.15
  • Upgraded to tauri-macros@2.0.0-beta.14
  • Upgraded to tauri-build@2.0.0-beta.14

[2.0.0-beta.17]

New Features

  • 12b4159bd(#9392) Add specta feature flag which adds specta support for AppHandle, State, Window, Webview and WebviewWindow types.
  • 477bb8cd4(#9297) Add App/AppHandle/Window/Webview/WebviewWindow::cursor_position getter to get the current cursor position.

Enhancements

  • eff778b8f(#9571) Run each plugin initialization script on its own context so they do not interfere with each other or the Tauri init script.

Bug Fixes

Dependencies

  • Upgraded to tauri-runtime@2.0.0-beta.14
  • Upgraded to tauri-runtime-wry@2.0.0-beta.14

[2.0.0-beta.16]

New Features

  • 70c51371e(#9539) Add window.isTauri to check whether running inside tauri or not.

Bug Fixes

  • daf018e4f(#9505) Fix resource tables not cleaned up on exit which causes tray icon inside resource tables not cleaned up on exit
  • a07b51320(#9490) Add missing permission for window.start_resize_dragging
  • 35b25f7e5(#9530) Do not use JS optional chaining to prevent script errors on older webviews such as macOS 10.14.

What's Changed

  • 005fe8ce1(#9410) Fix closable, maximizable and minimizable options not taking effect when used in tauri.conf.json or from JS APIs.

Dependencies

  • Upgraded to tauri-runtime-wry@2.0.0-beta.13
  • Upgraded to tauri-build@2.0.0-beta.13
  • Upgraded to tauri-utils@2.0.0-beta.13
  • Upgraded to tauri-runtime@2.0.0-beta.13
  • Upgraded to tauri-macros@2.0.0-beta.13

[2.0.0-beta.15]

New Features

  • 58a7a552d(#9378) Added the set_zoom function to the webview API.
  • 58a7a552d(#9378) Add zoom_hotkeys_enabled to enable browser native zoom controls on creating webviews.
  • 4973d73a2(#9386) Provide a basic zoom hotkey polyfill for non-Windows platforms

Enhancements

  • f1674fce6(#9420) Tauri's built-in commands for the JS api will now return simplified paths on Windows, removing the \\?\ prefix.

Bug Fixes

  • c8a82ad22(#9379) Fix deadlock when using the menu/tray/image JS APIs.
  • 6251645ac(#9360) Fixes an issue causing getAll() to list webviews that were already destroyed.

Dependencies

  • Upgraded to tauri-utils@2.0.0-beta.12
  • Upgraded to tauri-runtime-wry@2.0.0-beta.12
  • Upgraded to tauri-runtime@2.0.0-beta.12
  • Upgraded to tauri-macros@2.0.0-beta.12
  • Upgraded to tauri-build@2.0.0-beta.12

Breaking Changes

  • c8a82ad22(#9379) Changed JsImage::into_img to take a reference to a ResourceTable instead of a Manager.

[2.0.0-beta.14]

New Features

Enhancements

  • 06833f4fa(#9100) Enhance the IPC URL check by using the Origin header on the custom protocol IPC and the new request URI field on the postMessage IPC instead of using Webview::url() which only returns the URL of the main frame and is not suitable for iframes (iframe URL fetch is still not supported on Android and on Linux when using the postMessage IPC).

Bug Fixes

  • c33f6e6cf(#9211) Fixed an issue preventing webview/window creation events to not be emitted. This also fixed the getByLabel and getAll JavaScript functions.

What's Changed

Dependencies

  • Upgraded to tauri-utils@2.0.0-beta.11
  • Upgraded to tauri-runtime-wry@2.0.0-beta.11
  • Upgraded to tauri-runtime@2.0.0-beta.11
  • Upgraded to tauri-macros@2.0.0-beta.11
  • Upgraded to tauri-build@2.0.0-beta.11

Breaking Changes

  • 06833f4fa(#9100) Rename FileDrop to DragDrop on structs, enums and enum variants. Also renamed file_drop to drag_drop on fields and function names.
  • 284eca9ef(#9272) Manager::resources_table is now scoped so each App/AppHandle/Window/Webview/WebviewWindow has its own resource collection.
  • 06833f4fa(#9100) Refactored the tray icon event struct:

    • Changed TrayIconEvent.icon_rect type to use the new tauri::Rect type.
    • Removed TrayIconEvent.x and TrayIconEvent.y fields and combined them into TrayIconEvent.position field.
    • Removed tauri::tray::Rectangle struct.

[2.0.0-beta.13]

Enhancements

  • 75f5cb401(#9214) tauri::Window and tauri::WebviewWindow now implement raw_window_handle::HasDisplayHandle.

Bug Fixes

  • 81b853bc8(#9213) Fixed an issue where errors where returned as strings instead of objects from commands.
  • 43230cb6b(#9219) Fixes the menu plugin remove command signature.

[2.0.0-beta.12]

New Features

  • e227fe02f(#9156) Allow plugins to define (at compile time) JavaScript that are initialized when withGlobalTauri is true.

Enhancements

Bug Fixes

  • 379cc2b35(#9165) Fix basename(path, 'ext') JS API when removing all occurances of ext where it should only remove the last one.

Dependencies

  • Upgraded to tauri-build@2.0.0-beta.10
  • Upgraded to tauri-utils@2.0.0-beta.10
  • Upgraded to tauri-runtime@2.0.0-beta.10
  • Upgraded to tauri-runtime-wry@2.0.0-beta.10
  • Upgraded to tauri-macros@2.0.0-beta.10

Breaking Changes

  • acdd76833(#9155) Removed App/AppHandle::tray and App/AppHandle::remove_tray, use App/AppHandle::tray_by_id and App/AppHandle::remove_tray_by_id instead. If these APIs were used to access tray icon configured in tauri.conf.json, you can use App/AppHandle::tray_by_id with ID main or the configured value.
  • ea0242db4(#9179) Removed width and height methods on the JS Image class, use size instead.

[2.0.0-beta.11]

New Features

  • 490a6b424(#9147) The Assets trait now include a setup method that lets you run initialization code for your custom asset provider.

Bug Fixes

  • 85de230f3(#9144) Fix old JS listeners being dropped on page load after it was possible to create new listeners.
  • e673854c8(#9133) Fixes capability remote domain not allowing subpaths, query parameters and hash when those values are empty.

Dependencies

  • Upgraded to tauri-macros@2.0.0-beta.9
  • Upgraded to tauri-utils@2.0.0-beta.9
  • Upgraded to tauri-build@2.0.0-beta.9
  • Upgraded to tauri-runtime@2.0.0-beta.9
  • Upgraded to tauri-runtime-wry@2.0.0-beta.9

Breaking Changes

  • 490a6b424(#9147) The Context struct and the Assets trait now takes a R: Runtime generic.
  • ba0206d8a(#9141) Context::assets now returns &dyn Assets instead of &A generic.
  • ba0206d8a(#9141) The Context type no longer uses the <A: Assets> generic so the assets implementation can be swapped with Context::assets_mut.
  • 490a6b424(#9147) Removed Context::assets_mut and added Context::set_assets.
  • db0a24a97(#9132) Use the image crate for tauri::image::Image and remove the from_png_bytes and from_ico_bytes APIs.

[2.0.0-beta.10]

New Features

  • 3e472d0af(#9115) Added CapabilityBuilder::platform to link the runtime capability with a specific platform.

Enhancements

  • 3e472d0af(#9115) Changed the permission and capability platforms to be optional.
  • 9dc9ca6e3(#9113) Added tauri::dev() to determine whether we are running in development mode or not.

Bug Fixes

  • 5541aafef(#9107) Fix emit and emit_to (when used with EventTarget::Any) always skipping the webview listeners.
  • 80c12ead4(#9121) Fix regression on IPC response when using a channel to return objects.

Dependencies

  • Upgraded to tauri-utils@2.0.0-beta.8
  • Upgraded to tauri-runtime@2.0.0-beta.8
  • Upgraded to tauri-runtime-wry@2.0.0-beta.8
  • Upgraded to tauri-macros@2.0.0-beta.8
  • Upgraded to tauri-build@2.0.0-beta.8

Breaking Changes

  • 4ef17d083(#9116) The ACL configuration for remote URLs now uses the URLPattern standard instead of glob patterns.
  • ed48e2b3c(#9122) Expose tauri::image module to export the JsImage type and removed the Image root re-export.

[2.0.0-beta.9]

New Features

Enhancements

  • a77be9747(#9038) Fallback to the postMessage IPC interface if we cannot reach the IPC custom protocol.
  • e62ca4ee9(#9070) Added a mechanism to preserve channel message order.
  • 03098b531(#9036) Manager::add_capability now allows adding a dynamically defined capability instead of only relying on static strings.
  • b5c743276(#9086) Use a strict content security policy on the isolation pattern iframe.
  • 46de49aaa(#9059) When using the unstable feature flag, WebviewWindow will internally use the child webview interface for flexibility.

Bug Fixes

  • 86fa339de(#9071) Fix compile time error in context generation when using app.windows.windowEffects.color
  • 947a50b8e(#9049) Fix tauri migrate for http plugin ACL.
  • fe18012d3(#9072) Resolve symlinks on the filesystem scope check.
  • 6c0683224(#9068) Fixes scope resolution grouping scopes for all windows.

Dependencies

  • Upgraded to tauri-build@2.0.0-beta.7
  • Upgraded to tauri-utils@2.0.0-beta.7
  • Upgraded to tauri-runtime@2.0.0-beta.7
  • Upgraded to tauri-runtime-wry@2.0.0-beta.7
  • Upgraded to tauri-macros@2.0.0-beta.7

Breaking Changes

  • d1e77acd8(#9011) Renamed icon-ico and icon-png feature flags to image-ico and image-png respectively
  • 720357fd5(#9104) Removed tauri::path::Result and tauri::path::Error which were merely an unintentional re-export of tauri::Result and tauri::Error so use those instead.
  • 6c0683224(#9068) The allows and denies methods from ipc::ScopeValue, ipc::CommandScope and ipc::GlobalScope now returns &Vec<Arc<T>> instead of &Vec<T>.
  • d1e77acd8(#9011) Removed Context::default_window_icon_mut and Context::tray_icon_mut, use Context::set_default_window_icon and Context::set_tray_icon instead. Also changed Context::set_tray_icon to accept Option<T>.
  • d1e77acd8(#9011) Removed Icon enum, use the new Image type instead. All APIs that previously accepted Icon have changed to accept Image instead.

[2.0.0-beta.8]

New Features

  • d7f56fef(#9014) Allow defining a permission that only applies to a set of target platforms via the platforms configuration option.

Bug Fixes

  • e1d5b790(#8995) Fixes capability webview label check.
  • 222a96b7(#8999) Fixes Window::add_child deadlock.
  • e4463f08(#8930) Clear JS event listeneres on page load, which fixes zombie listeners when the page reloads.
  • 222a96b7(#8999) Fixes Webview::reparent not updating the webview parent window reference.

Dependencies

  • Upgraded to tauri-build@2.0.0-beta.6
  • Upgraded to tauri-utils@2.0.0-beta.6
  • Upgraded to tauri-runtime-wry@2.0.0-beta.6
  • Upgraded to tauri-runtime@2.0.0-beta.6
  • Upgraded to tauri-macros@2.0.0-beta.6

Breaking Changes

  • 3657ad82(#9008) Allow defining permissions for the application commands via tauri_build::Attributes::app_manifest.

Breaking Changes

  • b9e6a018(#8937) The custom-protocol Cargo feature is no longer required on your application and is now ignored. To check if running on production, use #[cfg(not(dev))] instead of #[cfg(feature = "custom-protocol")].

[2.0.0-beta.7]

Enhancements

  • bc5b5e67(#8984) Do not include a CSP tag in the application HTML and rely on the custom protocol response header instead.

Bug Fixes

  • 6cb601d4(#8983) Convert the command name to camelCase when executing a mobile plugin command.
  • 60bf11ab(#8986) Export ProgressBarStatus, regression introduced in 2.0.0-beta.4

Dependencies

  • Upgraded to tauri-utils@2.0.0-beta.5
  • Upgraded to tauri-runtime@2.0.0-beta.5
  • Upgraded to tauri-runtime-wry@2.0.0-beta.5
  • Upgraded to tauri-macros@2.0.0-beta.5
  • Upgraded to tauri-build@2.0.0-beta.5

[2.0.0-beta.6]

Bug Fixes

[2.0.0-beta.5]

New Features

  • fdcaf935(#8939) Added the reparent function to the webview API.

Dependencies

  • Upgraded to tauri-utils@2.0.0-beta.4
  • Upgraded to tauri-runtime-wry@2.0.0-beta.4
  • Upgraded to tauri-build@2.0.0-beta.4
  • Upgraded to tauri-runtime@2.0.0-beta.4
  • Upgraded to tauri-macros@2.0.0-beta.4

[2.0.0-beta.4]

Enhancements

  • 3fb414b6(#8914) Return an id when using from Manager::once_any, App::once, Window::once, Webview::once, WebviewWindow::once and fs::Scope::once.

Dependencies

  • Upgraded to tauri-utils@2.0.0-beta.3
  • Upgraded to tauri-runtime@2.0.0-beta.3
  • Upgraded to tauri-runtime-wry@2.0.0-beta.3
  • Upgraded to tauri-macros@2.0.0-beta.3
  • Upgraded to tauri-build@2.0.0-beta.3

Breaking Changes

  • 361ec37f(#8932) Moved ProgressBarState from tauri-utils to the tauri::window module and removed the unity_uri field.

[2.0.0-beta.3]

New Features

  • 16e550ec(#8844) Add webview-specific events for multi-webview windows:

    • Add WebviewEvent enum
    • Add RunEvent::WebviewEvent variant.
    • Add Builder::on_webview_event and Webview::on_webview_event methods.

Enhancements

  • 11a5816b(#8864) A file-drop now allows sub-directories recursively when the path is a directory.
  • 0cb0a15c(#8789) Add webviews array on the capability for usage on multiwebview contexts.
  • 258494bd(#8806) Added Manager::add_capability to add a capability file at runtime.
  • 5618f6d2(#8856) Relax requirements on plugin's identifiers to be alphanumeric and - instead of only lower alpha and -.

Bug Fixes

  • 16e550ec(#8844) Fix JS event listeners registered using JS listen api with EventTarget::Any never fired.
  • 8751c329(#8793) Fix invoking toggle devtools by hotkey.
  • bd73ab0a(#8766) When using the multiwebview mode, properly remove the webview from memory on Webview::close.
  • 46b6598a(#8826) Fix JS onCloseRequested catching close event from other windows.
  • 2e6db908(#8777) Fix regression in tauri::Error not being Sync.

What's Changed

  • 76ce9f61(#3002) Enhance centering a newly created window, it will no longer jump to center after being visible.

Dependencies

  • Upgraded to tauri-utils@2.0.0-beta.2
  • Upgraded to tauri-build@2.0.0-beta.2
  • Upgraded to tauri-macros@2.0.0-beta.2
  • Upgraded to tauri-runtime-wry@2.0.0-beta.2
  • Upgraded to tauri-runtime@2.0.0-beta.2

Breaking Changes

  • 258494bd(#8806) Removed the lifetime parameter from ipc::GlobalScope and ipc::CommandScope.
  • f284f9c5(#8898) Changed the capability remote configuration to take a list of urls instead of domains for more flexibility.
  • 2f55bfec(#8795) Update raw-window-handle to 0.6.
  • 2e6db908(#8777) Require ScopeObject::Error to be Sync as well.

[2.0.0-beta.2]

Bug Fixes

  • fe67ab7f(#8761) Workaround for zbus not enabling the proper Cargo features for its nix dependency.

Dependencies

  • Upgraded to tauri-build@2.0.0-beta.1
  • Upgraded to tauri-utils@2.0.0-beta.1
  • Upgraded to tauri-runtime@2.0.0-beta.1
  • Upgraded to tauri-runtime-wry@2.0.0-beta.1
  • Upgraded to tauri-macros@2.0.0-beta.1

[2.0.0-beta.1]

Bug Fixes

  • 863bc9e5(#8749) Fix regression on the JavaScript code that processes the IPC message.

[2.0.0-beta.0]

New Features

  • 74a2a603(#8661) Implement access control list for IPC usage.
  • a2fc3a63(#8657) Add visibleOnAllWorkspaces option when creating the window in JS and Window.setVisibleOnAllWorkspaces method.
  • af610232(#8710) Added Window::destroy to force close a window.
  • c77b4032(#8280) Add multiwebview support behind the unstable feature flag. See WindowBuilder and WebviewBuilder for more information.
  • 9eaeb5a8(#8622) Add WindowBuilder::parent which is a convenient wrapper around parent functionality for Windows, Linux and macOS. Also added WindowBuilder::owner on Windows only. Also added WindowBuilder::transient_for and WindowBuilder::transient_for_raw on Linux only.

Enhancements

  • e8d3793c(#8732) Add common-controls-v6 cargo feature flag (enabled by default).
  • 58fe2e81(#8670) Allow IPC calls when window origin is a defined custom protocol.

Bug Fixes

  • 95da1a27(#8713) Fix calling set_activation_policy when the event loop is running.
  • e1eb911f(#8582) Ensure initalize logic and dropping of menu item is done on the main thread, this fixes the crash when a menu item is dropped on another thread.
  • a093682d(#8621) Fix can not prevent closing a window from another webview.
  • 7f033f6d(#8537) Fix undecorated window resizing on Windows and Linux.

What's Changed

  • 9f8037c2(#8633) On Windows, fix decorated window not transparent initially until resized.
  • 7f033f6d(#8537) Add Window::start_resize_dragging and ResizeDirection enum.
  • 6639a579(#8441) Added the WindowConfig::proxy_url WebviewBuilder::proxy_url() / WebviewWindowBuilder::proxy_url() options when creating a webview.

Dependencies

  • Upgraded to tauri-build@22.0.0-beta.0
  • Upgraded to tauri-utils@2.0.0-beta.0
  • Upgraded to tauri-macros@2.0.0-beta.0
  • Upgraded to tauri-runtime@2.0.0-beta.0
  • Upgraded to tauri-runtime-wry@2.0.0-beta.0

Breaking Changes

  • 8de308d1(#8723) Restructured Tauri config per RFC#5:

    • Moved package.productName, package.version and tauri.bundle.identifier fields to the top-level.
    • Removed package object.
    • Renamed tauri object to app.
    • Moved tauri.bundle object to the top-level.
    • Renamed build.distDir field to frontendDist.
    • Renamed build.devPath field to devUrl and will no longer accepts paths, it will only accept URLs.
    • Moved tauri.pattern to app.security.pattern.
    • Removed tauri.bundle.updater object, and its fields have been moved to the updater plugin under plugins.updater object.
    • Moved build.withGlobalTauri to app.withGlobalTauri.
    • Moved tauri.bundle.dmg object to bundle.macOS.dmg.
    • Moved tauri.bundle.deb object to bundle.linux.deb.
    • Moved tauri.bundle.appimage object to bundle.linux.appimage.
    • Removed all license fields from each bundle configuration object and instead added bundle.license and bundle.licenseFile.
    • Renamed AppUrl to FrontendDist and refactored its variants to be more explicit.
  • c77b4032(#8280) The invoke_system, on_page_load hooks now gives you a Webview argument instead of a Window.

  • e1eb911f(#8582) All menu item constructors accelerator argument have been changed to Option<impl AsRef<str>> so when providing None you need to specify the generic argument like None::<&str>.

  • e1eb911f(#8582) All menu item constructors have been changed to return a Result<Self>

  • aa758a85(#8716) Moved the command module items to the ipc module so its import name does not clash with the command macro.

  • 00e15675(#8708) AppHandle::exit and AppHandle::restart now go triggers RunEvent::ExitRequested and RunEvent::Exit and cannot be executed on the event loop handler.

  • ec9818ac(#8696) Added a callback to the App::run_iteration and removed its return value.

  • a093682d(#8621) Refactored the event system to better accommodate the new window types:

    • Added EventTarget enum.
    • Added App/AppHandle::listen, App/AppHandle::once and App/AppHandle::unlisten to listen to events targeting App/AppHandle
    • App/AppHandle/Window/Webview/WebviewWindow::emit will now emit to all event listeners.
    • App/AppHandle/Window/Webview/WebviewWindow::emit_to will emit to event targets that match the given label, see EventTarget enum.
    • App/AppHandle/Window/Webview/WebviewWindow::emit_filter will emit to event targets based on a filter callback which now takes &EventTarget instead of &Window.
    • Renamed Manager::listen_global and Manager::once_global to listen_any and once_any respectively to be consistent with EventTarget::Any, it will now also listen to any event to any target (aka event sniffer).
  • 9eaeb5a8(#8622) Renamed WindowBuilder::owner_window to WindowBuilder::owner_raw and WindowBuilder::parent_window to WindowBuilder::parent_raw.

  • 9eaeb5a8(#8622) Changed WindowBuilder::from_config to return a Result<Self>.

  • c77b4032(#8280) Renamed Window to WebviewWindow, WindowBuilder to WebviewWindowBuilder, Manager::windows to Manager::webview_windows and Manager::get_window to Manager::get_webview_window.

  • af610232(#8710) Window::close now triggers a close requested event instead of forcing the window to be closed.

  • c77b4032(#8280) Renamed the window-data-url feature flag to webview-data-url.

[2.0.0-alpha.21]

New Features

  • 29ced5ce(#8159) Added WindowBuilder::on_download to handle download request events.

Enhancements

  • d621d343(#8607) Added tracing for window startup, plugins, Window::eval, events, IPC, updater and custom protocol request handlers behind the tracing feature flag.

What's Changed

  • cb640c8e(#8393) Fix RunEvent::WindowEvent(event: WindowEvent::FileDrop(FileDropEvent)) never triggered and always prevent default OS behavior when disable_file_drop_handler is not used.

Dependencies

  • Upgraded to tauri-runtime-wry@1.0.0-alpha.9
  • Upgraded to tauri-utils@2.0.0-alpha.13
  • Upgraded to tauri-runtime@1.0.0-alpha.8
  • Upgraded to tauri-macros@2.0.0-alpha.13
  • Upgraded to tauri-build@2.0.0-alpha.14

Breaking Changes

  • 2032228c(#8430) Removed GlobalWindowEvent struct, and unpacked its field to be passed directly to tauri::Builder::on_window_event.

[2.0.0-alpha.20]

Dependencies

  • Upgraded to tauri-utils@2.0.0-alpha.12
  • Upgraded to tauri-runtime@1.0.0-alpha.7
  • Upgraded to tauri-runtime-wry@1.0.0-alpha.8
  • Upgraded to tauri-macros@2.0.0-alpha.12
  • Upgraded to tauri-build@2.0.0-alpha.13

[2.0.0-alpha.19]

New Features

  • b59f2f54(#8432) Expose scope::fs::Scope::new.
  • bf095df5(#8276) Exposed Manager::resources_table to access the resources table used by tauri, which could be used by plugins or app authors to store their resources and retrieve it later using an id and can be used to create Rust-backed resources in JS.

Enhancements

  • 5848b4e8(#8386) Fixed the deserialisation of a Channel in iOS.
  • 11a1529d(#8419) Include CORS header on custom protocol response errors to ensure frontend can read the error message.
  • db127777(#8380) Added test::get_ipc_response.

Bug Fixes

  • effe5871(#8420) Fixes file scope checks on Android.
  • f98ce5aa(#8328) Fix incorrect menu item for PredefinedMenuItem::close_window

[2.0.0-alpha.18]

Bug Fixes

  • b5f40ae5(#8147) Fixes global events not reaching to window listeners.

Dependencies

  • Upgraded to tauri-macros@2.0.0-alpha.11
  • Upgraded to tauri-build@2.0.0-alpha.12
  • Upgraded to tauri-utils@2.0.0-alpha.11
  • Upgraded to tauri-runtime@1.0.0-alpha.5
  • Upgraded to tauri-runtime-wry@1.0.0-alpha.6

[2.0.0-alpha.17]

Enhancements

  • b89de9fa(#8092) Add support for onResume and onPause events in android plugins.
  • c6c59cf2 Pull changes from Tauri 1.5 release.
  • 198abe3c(#8076) Mobile plugins can now resolve using an arbitrary object instead of using the JSObject class via Invoke.resolve on iOS and Invoke.resolveObject on Android.

Bug Fixes

  • 22f26882(#8049) Prevent crash on iOS when the Swift plugin data is not a valid JSON string.

Dependencies

  • Upgraded to tauri-build@2.0.0-alpha.11
  • Upgraded to tauri-macros@2.0.0-alpha.10
  • Upgraded to tauri-utils@2.0.0-alpha.10
  • Upgraded to tauri-runtime@1.0.0-alpha.4
  • Upgraded to tauri-runtime-wry@1.0.0-alpha.5
  • 9580df1d(#8084) Upgrade gtk to 0.18.
  • c7c2507d(#8035) Update windows to version 0.51 and webview2-com to version 0.27
  • 9580df1d(#8084) Updated to wry@0.34, removing the dox feature flag.

Breaking Changes

  • 198abe3c(#8076) The Android PluginManager.loadConfig now takes a third parameter to define the class type of the config object.
  • 198abe3c(#8076) Mobile plugins now have access to a parser for the invoke arguments instead of relying on the Invoke#get${TYPE} methods.
  • 74d2464d(#8116) Added WindowBuilder::on_page_load and refactored the Builder::on_page_load handler to take references. The page load hook is now triggered for load started and finished events, to determine what triggered it see PageLoadPayload::event.
  • 93c8a77b(#7996) The event system APIS on Rust is recieving a few changes for consistency and quality of life improvements:

    • Renamed Manager::emit_all to just Manager::emit and will now both trigger the events on JS side as well as Rust.
    • Removed Manager::trigger_global, use Manager::emit
    • Added Manager::emit_filter.
    • Removed Window::emit, and moved the implementation to Manager::emit.
    • Removed Window::emit_and_trigger and Window::trigger, use Window::emit instead.
    • Changed Window::emit_to to only trigger the target window listeners so it won't be catched by Manager::listen_global

[2.0.0-alpha.16]

New Features

  • c085adda(#8009) Added set_progress_bar to Window.
  • c1ec0f15(#7933) Added Window::set_always_on_bottom and the always_on_bottom option when creating a window.
  • 880266a7(#8031) Bump the MSRV to 1.70.
  • ed32257d(#7794) On Windows, add Effect::Tabbed,Effect::TabbedDark and Effect::TabbedLight effects.

Enhancements

What's Changed

Dependencies

  • Upgraded to tauri-runtime@1.0.0-alpha.3
  • Upgraded to tauri-runtime-wry@1.0.0-alpha.4
  • Upgraded to tauri-utils@2.0.0-alpha.9
  • Upgraded to tauri-build@2.0.0-alpha.10
  • Upgraded to tauri-macros@2.0.0-alpha.9

Breaking Changes

  • a63e71f9(#7942) The initialization script for Builder::invoke_system now must initialize the window.__TAURI_INTERNALS__.postMessage function instead of window.__TAURI_POST_MESSAGE__.
  • 12b8d18b(#7875) - Removed tauri::path::Error and added its variants to tauri::Error
    • Removed tauri::path::Result and tauri::plugin::Result aliases, you should use tauri::Result or your own Result type.
  • 8b166e9b(#7949) Changed TAURI_AUTOMATION to TAURI_WEBVIEW_AUTOMATION
  • 2558fab8(#7939) This release contains a number of breaking changes to improve the consistency of tauri internals and the public facing APIs and simplifying the types where applicable:

    • Removed EventHandler type.
    • Added EventId type
    • Changed Manager::listen_global and Window::listen to return the new EventId type instead of EventHandler.
    • Removed the return type of Manager::once_global and Window::once
    • Changed Manager::unlisten and Window::unlisten to take he new EventId type.
    • Added tauri::scope::ScopeEventId
    • Changed FsScope::listen to return the new ScopeEventId instead of Uuid.
    • Added FsScope::unlisten

[2.0.0-alpha.15]

Enhancements

  • b597aa5f(#7871) Set main as the default id for the tray icon registered from the configuration file, so if the id is not specified, it can be retrieved using app.tray_by_id("main").

Bug Fixes

  • a2021c30(#7866) Changed IconMenuItem::set_native_icon signature to take &self instead of &mut self to fix compilation error on macos.
  • a68ccaf5(#7822) Fix asset protocol failing to fetch files.
  • 6fbd6dba(#17) Fix the validation of std::env::current_exe warn the user if AppImage is not mounted instead of panicking

Dependencies

  • Upgraded to tauri-macros@2.0.0-alpha.8
  • Upgraded to tauri-utils@2.0.0-alpha.8
  • Upgraded to tauri-build@2.0.0-alpha.9
  • Upgraded to tauri-runtime@1.0.0-alpha.2
  • Upgraded to tauri-runtime-wry@1.0.0-alpha.3

Breaking Changes

  • 092a561c(#7874) Removed tauri::api module as most apis have been moved to either a plugin or we recommend using other crates.
  • deea9436(#7876) Changed Env.args to Env.args_os and now uses OsString instead of String
  • b7fd88e1(#7944) tauri::scope module is recieving a couple of consistency changes:

    • Added tauri::scope::fs module.
    • Removed scope::IpcScope re-export, use scope::ipc::Scope.
    • Removed FsScope, GlobPattern and FsScopeEvent, use scope::fs::Scope, scope::fs::Pattern and scope::fs::Event respectively.
  • c0d03af4(#7943) Changed TrayIconBuilder/TrayIcon::on_tray_event to TrayIconBuilder/TrayIcon::on_tray_icon_event for consistency of naming.

[2.0.0-alpha.14]

Bug Fixes

Dependencies

  • Upgraded to tauri-runtime-wry@1.0.0-alpha.2

Breaking Changes

  • d5074af5(#7801) The custom protocol on Android now uses the http scheme instead of https.

[2.0.0-alpha.13]

Breaking Changes

  • 4cb51a2d(#7779) The custom protocol on Windows now uses the http scheme instead of https.

[2.0.0-alpha.12]

Enhancements

  • 8a676617(#7618) Ensure Builder is Send by requiring the menu closure to be Send.
  • 0d63732b(#7754) Added Builder::register_asynchronous_uri_scheme_protocol to allow resolving a custom URI scheme protocol request asynchronously to prevent blocking the main thread.

Bug Fixes

  • 0d63732b(#7754) Fixes invalid header value type when requesting IPC body through a channel.
  • e98393e4(#7673) No longer unpacking and flattening the payload over the IPC so that commands with arguments called cmd, callback, error, options or payload aren't breaking the IPC.
  • 29818de6(#7662) Fixes IPC failing to communicate for remote URLs on macOS and iOS.

What's Changed

  • 6177150b(#7601) Changed FileDropEvent to include drop and hover position.

Dependencies

  • Upgraded to tauri-runtime@1.0.0-alpha.1
  • Upgraded to tauri-runtime-wry@1.0.0-alpha.1

Breaking Changes

  • 0d63732b(#7754) Changed Builder::register_uri_scheme_protocol to return a http::Response instead of Result<http::Response>. To return an error response, manually create a response with status code >= 400.
  • 0d63732b(#7754) tauri-runtime no longer implements its own HTTP types and relies on the http crate instead.
  • 0d63732b(#7754) Changed Builder::invoke_system to take references instead of owned values.
  • 5c95152c(#7621) Changed MenuBuilder\SubmenuBuilder::text, MenuBuilder\SubmenuBuilder::check, MenuBuilder\SubmenuBuilder::icon and MenuBuilder\SubmenuBuilder::native_icon to take an id as the first argument.
  • 0d63732b(#7754) Changed Window::on_message signature to take a responder closure instead of returning the response object in order to asynchronously process the request.

[2.0.0-alpha.11]

New Features

  • 4db363a0(#6589) Added visible_on_all_workspaces configuration option to WindowBuilder, Window, and WindowConfig.
  • 84c41597(#6394) Add App::primary_monitor, App::available_monitors, AppHandle::primary_monitor, and AppHandle::available_monitors
  • 2a000e15(#7235) Added Window::navigate.
  • 3b98141a(#3736) Added support to file associations.
  • 3a2c3e74(#7306) Added PluginBuilder::on_navigation. Added Plugin::on_navigation.
  • 753900dd(#7440) Expose RunEvent::Opened on macOS and iOS for deep link support.
  • 7fb419c3(#7535) Add App::cleanup_before_exit and AppHandle::cleanup_before_exit to manually call the cleanup logic. You should always exit the tauri app immediately after this function returns and not use any tauri-related APIs.
  • 7fb419c3(#7535) On Linux, add Window::default_vbox to get a reference to the gtk::Box that contains the menu bar and the webview.
  • 7fb419c3(#7535) Add linux-libxdo feature flag (disabled by default) to enable linking to libxdo which is used to make Cut, Copy, Paste and SelectAll native menu items work on Linux.
  • 7fb419c3(#7535) On macOS, add Window::ns_view to get a pointer to the NSWindow content view.
  • 7fb419c3(#7535) Expose run_on_main_thread method on App that is similar to AppHandle::run_on_main_thread.

Enhancements

  • a5752db9(#7436) Listen to onNewIntent and forward it to registered plugins.
  • fbeb5b91(#7170) Added Channel::new allowing communication from a mobile plugin with Rust.
  • fbeb5b91(#7170) Use custom protocols on the IPC implementation to enhance performance.

Dependencies

  • Upgraded to tauri-runtime@1.0.0-alpha.0
  • Upgraded to tauri-utils@2.0.0-alpha.7
  • Upgraded to tauri-macros@2.0.0-alpha.7
  • Upgraded to tauri-runtime-wry@1.0.0-alpha.0
  • Upgraded to tauri-build@2.0.0-alpha.7
  • d1a6e2f3(#7252) Update state to v0.6.

Breaking Changes

  • fd5dc788(#7352) - Removed tauri::api::file and tauri::api::dir modules, use std::fs instead.
    • Removed tauri::api::version module, use semver crate instead.
  • fbeb5b91(#7170) Moved tauri::api::ipc to tauri::ipc and refactored all types.
  • fbeb5b91(#7170) Removed the linux-protocol-headers feature (now always enabled) and added linux-ipc-protocol.
  • 7fb419c3(#7535) Changed App::handle and Manager::app_handle to return a reference to an AppHandle instead of an owned value.
  • 7fb419c3(#7535) The tray icon and menu have received a huge refactor with a lot of breaking changes in order to add new functionalities and improve the DX around using them and here is an overview of the changes:

    • All menu and tray types are now exported from tauri::menu and tauri::tray modules with new names so make sure to check the new types.
    • Removed tauri::Builder::system_tray, instead you should use tauri::tray::TrayIconBuilder inside tauri::Builder::setup hook to create your tray icons.
    • Changed tauri::Builder::menu to be a function to accommodate for new menu changes, you can passe tauri::menu::Menu::default to it to create a default menu.
    • Renamed tauri::Context methods system_tray_icon, tauri::Context::system_tray_icon_mut and tauri::Context::set_system_tray_icon to tauri::Context::tray_icon, tauri::Context::tray_icon_mut and tauri::Context::set_tray_icon to be consistent with new type names.
    • Added RunEvent::MenuEvent and RunEvent::TrayIconEvent.
    • Added App/AppHandle::set_menu, App/AppHandle::remove_menu, App/AppHandle::show_menu, App/AppHandle::hide_menu and App/AppHandle::menu to access, remove, hide or show the app-wide menu that is used as the global menu on macOS and on all windows that don't have a specific menu set for it on Windows and Linux.
    • Added Window::set_menu, Window::remove_menu, Window::show_menu, Window::hide_menu, Window::is_menu_visible and Window::menu to access, remove, hide or show the menu on this window.
    • Added Window::popup_menu and Window::popup_menu_at to show a context menu on the window at the cursor position or at a specific position. You can also popup a context menu using popup and popup_at methods from ContextMenu trait which is implemented for Menu and Submenu types.
    • Added App/AppHandle::tray, App/AppHandle::tray_by_id, App/AppHandle::remove_tray and App/AppHandle::remove_tray_by_id to access or remove a registered tray.
    • Added WindowBuilder/App/AppHandle::on_menu_event to register a new menu event handler.
    • Added App/AppHandle::on_tray_icon_event to register a new tray event handler.
  • 7fb419c3(#7535) Renamed system-tray feature flag to tray-icon.

  • 3a2c3e74(#7306) The Window#on_navigation closure now receives a &Url argument instead of Url.

[2.0.0-alpha.10]

New Features

  • f2d68cf7(#6767) Add incognito option to the window configuration object.
  • f2d68cf7(#6767) Add WindowBuilder::incognito
  • e0f0dce2(#6442) Added the window_effects option when creating a window and Window::set_effects to change it at runtime.

Enhancements

Bug Fixes

[2.0.0-alpha.9]

  • 256c30c7(#6863) Enhance parsing of annotated Android plugin methods to support private functions.
  • 73c803a5(#6837) Added static function loadConfig on the Android PluginManager class.
  • edb16d13(#6831) Adjust Android plugin exception error.
  • 0ab5f40d(#6813) Add channel API for sending data across the IPC.
  • 31444ac1(#6725) On Android, update proguard rules.
  • 8ce32e74(#6986) Add default_window_icon getter on App and AppHandle.
  • 2a5175a8(#6779) Enhance Android's JSObject return types.
  • bb2a8ccf(#6830) Use actual iOS plugin instance to run command with throws.
  • 94224906(#6783) Generate TauriActivity Kotlin class on the build script.
  • 7a4b1fb9(#6839) Added support to attibutes for each command path in the generate_handler macro.
  • 9a79dc08(#6947) Remove enable_tauri_api from the IPC scope.
  • dfa407ff(#6763) Expose plugin configuration on the Android and iOS plugin classes.
  • 3245d14b(#6895) Moved the app feature to its own plugin in the plugins-workspace repository.
  • 09376af5(#6704) Moved the cli feature to its own plugin in the plugins-workspace repository.
  • 2d5378bf(#6717) Moved the dialog APIs to its own plugin in the plugins-workspace repository.
  • 39f1b04f(#6943) Moved the event JS APIs to a plugin.
  • fc4d687e(#6716) Moved the file system APIs to its own plugin in the plugins-workspace repository.
  • f78a3783(#6742) Moved the http feature to its own plugin in the plugins-workspace repository.
  • 29ce9ce2(#6902) Moved the os feature to its own plugin in the plugins-workspace repository.
  • 60cf9ed2(#6905) Moved the process feature to its own plugin in the plugins-workspace repository.
  • e1e85dc2(#6925) Moved the protocol scope configuration to the asset_protocol field in SecurityConfig.
  • 96639ca2(#6749) Moved the shell functionality to its own plugin in the plugins-workspace repository.
  • e1e85dc2(#6925) Moved the updater configuration to the BundleConfig.
  • b072daa3(#6919) Moved the updater feature to its own plugin in the plugins-workspace repository.
  • 3188f376(#6883) Bump the MSRV to 1.65.
  • d693e526(#6780) Added the onNewIntent Plugin hook on Android.
  • 34b8f339(#6705) Add app method for the PluginApi struct.
  • 96639ca2(#6749) Moved the tauri::api::process module to tauri::process.
  • cdad6e08(#6774) Changed how the tauri-android dependency is injected. This requires the gen/android project to be recreated.
  • e1e85dc2(#6925) Removed the allowlist configuration.
  • cebd7526(#6728) Moved the clipboard feature to its own plugin in the plugins-workspace repository.
  • e1e85dc2(#6925) Removed extract and move APIs from tauri::api::file.
  • 3f17ee82(#6737) Moved the global-shortcut feature to its own plugin in the plugins-workspace repository.
  • ae102980(#6719) Refactor the Context conditional fields and only parse the tray icon on desktop.
  • 2d5378bf(#6717) Remove the updater's dialog option.
  • e1e85dc2(#6925) Removed UpdaterEvent. See tauri-plugin-updater for new usage.
  • 9a79dc08(#6947) Moved the window JS APIs to its own plugin in the plugins-workspace repository.
  • 22a76338(#6713) Expose SafePathBuf type in tauri::path.
  • c4171152(#6909) Enable shadows by default.
  • dfa407ff(#6763) Change iOS plugin init function signature to func init_plugin() -> Plugin.

[2.0.0-alpha.8]

  • Fixes boolean plugin parameters freezing the application.
    • 9de89791 fix(core): iOS plugin freezing when receiving a bool parameter (#6700) on 2023-04-13

[2.0.0-alpha.7]

  • Change minimum Android SDK version to 21 for the plugin library.
    • db4c9dc6 feat(core): add option to configure Android's minimum SDK version (#6651) on 2023-04-07
  • Improve the run_mobile_plugin function error handling.
    • f0570d9f feat(core): improve run_mobile_plugin error handling (#6655) on 2023-04-07
  • Implement Clone for plugin::PluginHandle.
    • 052c5822 feat(core): implement Clone for PluginHandle (#6644) on 2023-04-05

[2.0.0-alpha.6]

  • Fix compilation issues without the shell API features.
    • a8137927 fix(core): compilation issues without execute or sidecar features (#6621) on 2023-04-03

[2.0.0-alpha.5]

  • Fixes ProGuard rules.
    • adf4627b fix(core): adjust ProGuard rules (#6588) on 2023-03-31
  • Added raw encoding option to read stdout and stderr raw bytes.
    • f992e7f5 chore(changes): readd change file on 2023-04-03
  • Renamed the default-tls feature to native-tls and added rustls-tls feature.
    • cfdee00f refactor(core): fix tls features, use rustls on mobile (#6591) on 2023-03-30

[2.0.0-alpha.4]

  • Allow a wry plugin to be registered at runtime.
    • ae296f3d refactor(tauri-runtime-wry): register runtime plugin after run() (#6478) on 2023-03-17
  • Inject proguard-tauri.pro file in the Android project.
    • bef4ef51 feat(android): enable minify on release, add proguard rules (#6257) on 2023-02-13
  • Return bool in the invoke handler.
    • 05dad087 feat: initial work for iOS plugins (#6205) on 2023-02-11
  • Use correct lib name in xcode project.
    • d1752fb1 fix(cli): use correct lib name in xcode project (#6387) on 2023-03-08
  • Run Android and iOS native plugins on the invoke handler if a Rust plugin command is not found.
    • 05dad087 feat: initial work for iOS plugins (#6205) on 2023-02-11
  • Added initialize_android_plugin and initialize_ios_plugin APIs on AppHandle.
    • 05dad087 feat: initial work for iOS plugins (#6205) on 2023-02-11
  • Changed the plugin setup hook to take a second argument of type PluginApi.
    • 6aaba834 refactor(plugin): add PluginApi and PluginHandle, expose on setup hook (#6291) on 2023-02-16
  • Refactored the implementation of the mobile_entry_point macro.
    • 9feab904 feat(core): add API to call Android plugin (#6239) on 2023-02-10
  • Removed the attohttpc client. The reqwest-* Cargo features were also removed.
  • Added App::run_mobile_plugin and AppHandle::run_mobile_plugin.
    • bfb2ab24 feat: add API to call iOS plugin (#6242) on 2023-02-11
  • Added the shadow option when creating a window and Window::set_shadow.
  • Implemented with_webview on Android and iOS.
    • 05dad087 feat: initial work for iOS plugins (#6205) on 2023-02-11

[2.0.0-alpha.3]

  • Update gtk to 0.16.
  • Show all application logs on iOS.
    • dee9460f feat: keep CLI alive when iOS app exits, show logs, closes #5855 (#5902) on 2022-12-27
  • Bump the MSRV to 1.64.
  • Only proxy the dev server on mobile to simplify desktop usage.
    • 78eaadae refactor(core): only proxy on mobile (#6126) on 2023-01-23
  • Removed mobile logging initialization, which will be handled by tauri-plugin-log.
  • Update rfd to 0.11.
    • f0a1d9cd chore: update rfd and wry versions (#6174) on 2023-02-03

[2.0.0-alpha.2]

  • Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when recursive option was false.
    • 9ad0a9a0 Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22

[2.0.0-alpha.1]

  • Implement response cache on the dev server proxy, used when the server responds with status 304.
    • 3ad5e72f feat(core): cache dev server proxy responses for 304 status code (#5818) on 2022-12-12
  • Properly proxy dev server requests with query strings and fragments.
    • a9b4cf20 fix(core): use entire request URL on dev server proxy (#5819) on 2022-12-12

[2.0.0-alpha.0]

  • Added the default-tls and reqwest-default-tls Cargo features for enabling TLS suppport to connect over HTTPS.
    • f6f9192a fix(core): Android compilation on Windows (#5658) on 2022-11-20
  • Breaking change: Use the custom protocol as a proxy to the development server on all platforms except Linux.
    • 6f061504 feat(cli): add android dev and ios dev commands (#4982) on 2022-08-20
  • Support with_webview for Android platform alowing execution of JNI code in context.
    • 8ea87e9c feat(android): with_webview access for jni execution (#5148) on 2022-09-08
  • First mobile alpha release!
  • Breaking change: The window creation and setup hook are now called when the event loop is ready.
    • b4622ea4 refactor(app): run setup and window creation when event loop is ready (#4914) on 2022-08-11
  • Export types required by the mobile_entry_point macro.
    • 98904863 feat(core): add mobile_entry_point macro (#4983) on 2022-08-21

[1.6.0]

New Features

Enhancements

  • 8ce51cec(#7718) On Windows, retain command line args when relaunching the app after an update. Supports NSIS and WiX (without elevated update task).

Bug Fixes

  • cc3d8e77(#8539) Fixes a deadlock when reading a stdout or stderr line returns an error.
  • b546b42d(#8577) Preserve the order of JS object/map keys in IPC calls. This also fixes issues with the JS http module when calling to servers that required a specific order of FormBody contents.
  • 8f8729d9(#8312) On macOS, allow cancelling maximization when doubleclick happens on data-tauri-drag-region by simply keeping the left moust button pressed and then moving the mouse away of the starting position of the click, which is consistent with the native behavior of macOS.

Dependencies

  • Upgraded to tauri-runtime-wry@0.14.4

[1.5.4]

Enhancements

Bug Fixes

  • 50a3d170(#8408) On Windows, fix open dialog defaultPath, when invoked from JS, not working if the path uses forward slash (/)
  • 645e1dcc(#8404) Fix NSIS updater failing to launch when using basicUi mode.

Dependencies

  • Upgraded to tauri-runtime-wry@0.14.3
  • Upgraded to tauri-utils@1.5.2
  • Upgraded to tauri-runtime@0.14.2
  • Upgraded to tauri-macros@1.4.3

[1.5.3]

Enhancements

  • b3e53e72(#8288) Added AssetResolver::iter to iterate on all embedded assets.
  • 5e05236b(#8289) Added tracing for window startup, plugins, Window::eval, events, IPC, updater and custom protocol request handlers behind the tracing feature flag.

Bug Fixes

  • 2ba88563(#8095) Fix docs.rs build for x86_64-apple-darwin.
  • 4b6a602a(#8234) Escape path of the updater msi to avoid crashing on installers with spaces.

Dependencies

  • Upgraded to tauri-runtime-wry@0.14.2
  • Upgraded to tauri-macros@1.4.2

[1.5.2]

Bug Fixes

  • 21cdbb41(#7982) Set the correct truncate option on OpenOptions so that write_file can completely overwrite existing files.

[1.5.1]

Bug Fixes

  • 3671edbc(#7937) Fix devtools not toggling on ctrl+shift+i or cmd+alt+i shortcuts.

[1.5.0]

New Features

  • eeb6be54(#7512) Add tauri::Manager::emit_filter and only serialize once when emitting to multiple windows.
  • 6c408b73(#7269) Add option to specify notification sound.
  • fdaee9a5(#7350) Add tauri::plugin::Builder::register_uri_scheme_protocol
  • 10e362d0(#7432) Added UpdateBuilder::endpoints to add request endpoints at runtime.
  • 10e362d0(#7432) Added UpdateResponse::header and UpdateResponse::remove_header to modify the update download request headers.

Enhancements

  • 757e959e(#7344) Open links externally when <base target="_blank" /> exists
  • c9827338(#7416) Enhance readDir API error with path information.
  • 58d6b899(#7636) Add append option to FsOptions in the fs JS module, used in writeTextFile and writeBinaryFile, to be able to append to existing files instead of overwriting it.
  • 9aa34ada(#7645) Add setting to switch to http://<scheme>.localhost/ for custom protocols on Windows.

Bug Fixes

  • 4bf1e85e(#7722) Properly respect the focused option when creating the webview.
  • 0797a002(#7746) On macOS, fixed tapping on custom title bar doesn't maximize the window.
  • 1a3dcdb8(#7185) On Windows, fix NSIS installers requiring administrator rights failing to be launched by updater.
  • fa7f9b77(#7341) Fix updater not following endpoint redirects.
  • 6fbd6dba(#17) Fix the validation of std::env::current_exe warn the user if AppImage is not mounted instead of panicking

Dependencies

  • Upgraded to tauri-utils@1.5.0
  • Upgraded to tauri-runtime-wry@0.14.1
  • Upgraded to tauri-runtime@0.14.1
  • Upgraded to tauri-macros@1.4.1

[1.4.1]

Bug Fixes

  • 6afd3472(#6680) Revert #6680 which added a default sound for notifications on Windows. This introduced inconsistency with other platforms that has silent notifications by default. In the upcoming releases, we will add support for modifying the notification sound across all platforms.

Security fixes

  • 066c09a6(#7227) Fix regression in 1.4 where the default behavior of the file system scope was changed to allow reading hidden files and directories by default.

[1.4.0]

New Features

  • 7c237209(#6546) Added tauri::VERSION const to get Tauri's version from Rust.
  • 4c39e46a(#7026) Added tauri::webview_version , to get webview version.
  • 359058ce(#5939) Add tauri::api::os::locale function to get the system locale.
  • c4d6fb4b(#2353) Added the maximizable, minimizable and closable options to the window builder.
  • c4d6fb4b(#2353) Added the set_maximizable, set_minimizable, set_closable, is_maximizable, is_minimizable and is_closable methods on Window.
  • 1d99f8a3(#4752) Expose the test module behind the test Cargo feature.
  • 000104bc(#6472) Add Window::is_focused and Manager::get_focused_window getters.
  • 441f9646(#5491) Add MenuHandle::try_get_item and SystemTrayHandle::try_get_item which returns a Option instead of panicking.

Enhancements

Bug Fixes

  • 82169e69(#5208) Fix parsing allowlist > http > scope urls that added a trailing slash which broke matching the incoming requests url.
  • b41b57eb(#7105) Fix panics when registering an invalid global shortcuts or checking it is registered and return proper errors instead.
  • aecf1469(#6889) Fix IPC failing after a failed navigation to an external URL.
  • 076e1a81(#7119) Fix unlistening to window events failing sometimes.
  • 3f35b452(#4080) Fix WindowBuilder::on_navigation handler not registered properly.
  • 0503eb69(#7078) On macOS and Linux, fix app crashing when creating a window with data: uri.
  • 3700793a(#6934) Emit UPTODATE update status to javascript when the updater server returns status code 204
  • ff5e4dbb(#6794) Fix some configurations not applied when creating the window through Javascript.
  • 65fd674f(#6652) Play a sound when showing a notification on Windows.
  • 696d77c3(#4493) Fixes global events not being received on window-specific event listeners.

[1.3.0]

  • Added the additional_browser_args option when creating a window.
    • 3dc38b15 feat(core): expose additional_browser_args to window config (fix: #5757) (#5799) on 2022-12-14
  • Fix passing --profile to cargo in tauri build causing conflict with --release passed by the CLI.
  • Added the content_protected option when creating a window and Window::set_content_protected to change it at runtime.
  • Fix serialization of js Map when used in invoke.
    • d4d6a98d fix(core): convert js Map to object before serialization, closes #6078 (#6099) on 2023-01-19
  • Added Window::on_navigation.
    • 3f35b452 Expose wry navigation_handler via WindowBuilder closes #4080 (#5686) on 2022-12-27
  • Sync __TAURI_METADATA__.__windows across all windows.
    • 146a794c fix(core): sync windows metadata across all windows, closes #5571 (#5615) on 2022-12-27
  • Fix UpdaterBuilder::check returning a parsing error when 204 is sent from server where it should instead return a UpToDate error.
    • eb1ec041 fix(core/updater): read and parse response after checking status code, closes #6192 (#6575) on 2023-03-31
  • Added OkWithLabel and OkCancelWithLabels variants to the api::dialog::MessageDialogButtons enum to set the text of the dialog buttons.
    • 00e1efaa feat: customize button texts of message dialog (#4383) on 2022-12-28
  • Added Builder::device_event_filter and App::set_device_event_filter methods.
    • 73fd60ee expose set_device_event_filter in tauri (#5562) on 2022-12-13
  • Fix resize glitch when double clicking a custom titlebar in the top resize area.
    • 4892637f fix: Resizing glitch on custom titlebar click (closes #2549) (#5966) on 2023-01-04
  • Fixes tray events not being delivered.
    • 138cb8d7 fix(tauri-runtime-wry): tray event listener not registered (#6270) on 2023-02-14
  • Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when recursive option was false.
    • 72389b00 Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22
  • Add is_minimized() window method.
  • Bump minimum supported Rust version to 1.60.
    • 5fdc616d feat: Use the zbus-backed of notify-rust (#6332) on 2023-03-31
  • Update the open crate to v3.2 to fix an URL encoding bug on Windows.
    • 708efbd9 fix(core/tauri): upgrade open to 3.2 to fix a bug on Windows (#6441) on 2023-04-06
  • Added support to mailto: and tel: links on the shell API.
    • d0d873e3 feat(core): add support to mailto: and tel: links, closes #5521 (#5544) on 2022-12-12
  • Pin os_info to =3.5.
    • a8d640b3 fix(core): pin unarray and os_info (#6212) on 2023-02-07
  • Pin raw-window-handle to 0.5.0 to keep MSRV.
    • c46c09f3 fix(deps): pin raw-window-handle to 0.5.0 (#6480) on 2023-03-17
  • Pin time to 0.3.15.
  • Added configuration to specify remote URLs allowed to access the IPC.
    • ee71c31f feat(core): allow configuring remote domains with IPC access, closes #5088 (#5918) on 2023-04-11
  • Add title getter on window.
  • Implement SystemTray::with_tooltip and SystemTrayHandle::set_tooltip for Windows and macOS.
    • 2265e097 feat(windows): implement with_tooltip (#5938) on 2023-01-01
  • Added window's url() getter.
  • On Windows, change webview theme based on Window theme for more accurate prefers-color-scheme support.
    • 7a8d570d fix: sync webview theme with window theme on Windows, closes #5802 (#5874) on 2022-12-27
  • Add a method to the WindowBuilder struct to recreate windows from tauri.conf.json configurations.
    • 49dff27e feat(core): create WindowBuilder from WindowConfig (#6073) on 2023-01-17
  • On Windows, Fix missing WindowEvent::Focused in App::run callback.
    • ff4ea1ea fix: dispatch focus event to app.run on Windows, closes #6460 (#6504) on 2023-03-31
  • Pin winnow crate to 0.4.1 to keep the 1.60 MSRV.

[1.2.5]

  • Block remote URLs from accessing the IPC.
    • 9c0593c33 feat(core): block remote URLs from accessing the IPC on 2023-04-12

[1.2.4]

  • Pin ignore to =0.4.18.
    • adcb082b chore(deps): pin ignore to =0.4.18 on 2023-01-17

[1.2.3]

  • Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when recursive option was false.
    • f1b0ad6e Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22

[1.2.2]

  • Invoke event listener in windows safely to avoid causing uncaught errors in windows that have loaded external urls
    • c14b1df3 fix(core): Invoke event listener in windows safely to avoid causing uncaught errors in windows that have loaded external urls (#5563) on 2022-12-08
  • Cleanup sidecar and tray icons when calling app.exit() from JS.
    • 0f269608 fix(core/api): cleanup before exit (#5765) on 2022-12-07
  • Fix compatibility with older Linux distributions.
    • b490308c fix(core): compilation error on older Linux versions, fixes #5684 (#5697) on 2022-11-28
  • Add tauri::Builder::enable_macos_default_menu to enable or disable the default menu creation on macOS.
    • 8866ecac feat(core): add tauri::Builder::enable_macos_default_menu (#5756) on 2022-12-07
    • b293da35 fix(changes): change enable_macos_default_menu bump to patch on 2022-12-08

[1.2.1]

  • Fixes a double serialization on the IPC.
  • Moved the custom protocol headers support on Linux behind the linux-protocol-headers Cargo feature to enhance compatibility with older Linux distributions.
    • d7109460 refactor: move Linux custom protocol headers support behind feature flag (#5683) on 2022-11-24
  • Fixes definition of impl HasRawDisplayHandle for AppHandle and App.
    • ed43ff32 fix(tauri): add missing generics on AppHandle and App (#5642) on 2022-11-17

[1.2.0]

  • Add accept_first_mouse option for macOS windows.
    • 95f467ad feat(core): add window accept_first_mouse option, closes #5347 (#5374) on 2022-10-17
  • Add new app-specific BaseDirectory enum variants AppConfig, AppData, AppLocalData, AppCache and AppLog along with equivalent functions in path module and deprecated ambiguous variants Log and App along with their equivalent functions in path module.
  • Set the correct mimetype when streaming files through asset: protocol
    • 39443b43 fix(core): set correct mimetype for asset protocol streams, closes #5203 (#5210) on 2022-09-30
    • 2d9c2b47 Revert "fix(core): set correct mimetype for asset protocol streams, closes #5203 (#5210)" on 2022-09-30
    • 9b1a6a1c fix(core): set correct mimetype for asset protocol streams, #5203 (#5536) on 2022-11-04
  • Disable automatic window tabbing on macOS when the tabbing_identifier option is not defined, the window is transparent or does not have decorations.
  • The custom protocol now validates the request URI. This has implications when using the asset protocol without the convertFileSrc helper, the URL must now use the asset://localhost/$filePath format.
    • 357480f4 feat(core): custom protocol headers on Linux, closes #4496 (#5421) on 2022-10-17
  • Escape glob special characters in files/directories when dropping files or using the open/save dialogs.
    • 4cbdf0fb fix(core): escape glob characters in drop/dialogs , closes #5234 (#5237) on 2022-10-05
  • Properly emit events with object payload.
    • 79dd6e16 fix(core): properly emit events with object payload, closes #5482 (#5492) on 2022-10-27
  • Fixes access to the WebviewWindow.getByLabel function in a tauri://window-created event listener.
    • e00b1e5f fix(core): update metadata before window-created listeners, closes #5191 (#5458) on 2022-10-22
  • Fixes resource reading being always rejected by the scope.
    • a06dc699 fix(core): canonicalize resource dir to fix scope check, closes #5196 (#5218) on 2022-09-29
  • Fixes __TAURI_PATTERN__ object freeze.
  • Readd the option to create an unfocused window via the focused method. The focus function has been deprecated.
    • 4036e15f feat(core): reimplement window initial focus flag, closes #5120 (#5338) on 2022-10-08
  • Add hidden_title option for macOS windows.
    • 321f3fed feat(macos): title_bar_style and hidden_title window options, closes #2663 (#3965) on 2022-09-30
  • Custom protocol headers are now implemented on Linux when running on webkit2gtk 2.36 or above.
    • 357480f4 feat(core): custom protocol headers on Linux, closes #4496 (#5421) on 2022-10-17
  • Add App::show(), AppHandle::show(), App::hide() and AppHandle::hide() for hiding/showing the entire application on macOS.
    • 39bf895b feat(macOS): Add application show and hide methods (#3689) on 2022-10-03
  • Fix a deadlock when modifying the menu in the on_menu_event closure.
  • - 7d9aa398 feat: bump MSRV to 1.59 (#5296) on 2022-09-28
  • Resolve base system directory in shell scope.
  • Added tabbing_identifier to the window builder on macOS.
  • Add title_bar_style option for macOS windows.
    • 321f3fed feat(macos): title_bar_style and hidden_title window options, closes #2663 (#3965) on 2022-09-30
  • Added methods to set the system tray title on macOS.
    • 8f1ace77 feat: expose set_title for MacOS tray (#5182) on 2022-09-30
  • Added the user_agent option when creating a window.
    • a6c94119 feat(core): expose user_agent to window config (#5317) on 2022-10-02

[1.1.4]

  • Block remote URLs from accessing the IPC.
    • 58ea0b452 feat(core): block remote URLs from accessing the IPC on 2023-04-12

[1.1.3]

  • Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when recursive option was false.
    • 2654c0f4 Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22

[1.1.2]

  • Escape glob special characters in files/directories when dropping files or using the open/save dialogs.
    • e4dc5bed fix(core): escape glob characters in drop/dialogs , closes #5234 (#5237) on 2022-10-05

[1.1.1]

  • Add missing allowlist config for set_cursor_grab, set_cursor_visible, set_cursor_icon and set_cursor_position APIs.
    • Bumped due to a bump in tauri-utils.
    • c764408d fix: Add missing allowlist config for cursor apis, closes #5207 (#5211) on 2022-09-16

[1.1.0]

  • Implement api::http::ClientBuilder::max_redirections for the default attohttpc client.
    • ba5560b2 feat(core): implement max_redirections for attohttpc, ref #4795 (#4811) on 2022-07-31
  • Implement From<api::process::Command> for std::process::Command.
    • 9f1d34c2 feat: implement From for std::process::Command, closes #4673 (#4836) on 2022-08-02
  • Added support to configuration files in TOML format (Tauri.toml file).
    • ae83d008 feat: add support to TOML config file Tauri.toml, closes #4806 (#4813) on 2022-08-02
  • Enhance SystemTray::with_icon to accept tauri::Icon.
    • 964926ff feat(core): enhance SystemTray::with_icon (#4849) on 2022-08-03
  • Fixes CLI parser ignoring inner subcommands.
  • Fix fs.readDir recursive option reading symlinked directories that are not allowed by the scope.
    • f4121c12 fix(endpoints/fs/readDir): don't read symlinks that are not allowed b… (#5123) on 2022-09-08
  • Fix typo in invalid state access panic message.
  • Fixes updater breaking the app icon in Finder.
    • 58fc1f21 fix(updater): blank icon after update on macOS, closes #4613 (#4861) on 2022-08-04
  • Implement theme APIs for Linux.
    • f21cbecd feat(core): implement theme APIs for Linux (#4808) on 2022-08-02
  • Implement raw_window_handle::HasRawDisplayHandle for App and AppHandle
    • 0ad9531d chore(deps): update tao to 0.13, wry to 0.20, rfd to 0.10, raw-window-handle to 0.5 (#4804) on 2022-07-31
  • Retain command line arguments in api::process::restart.
    • 6218c31e fix(core): retain command line arguments on restart, closes #4760 (#4763) on 2022-07-25
  • Added APIs to create a system tray at runtime.
  • Add api::Command::encoding method to set the stdout/stderr encoding.
    • d8cf9f9f Command support for specified character encoding, closes #4644 (#4772) on 2022-07-28
  • Do not follow redirects when api::http::ClientBuilder::max_redirections is 0.
    • d576e8ae feat(core): do not follow redirects if max_redirects is 0 closes #4795 (#4812) on 2022-07-31
  • Added the SystemTrayHandle::destroy method.
  • Added native-tls-vendored and reqwest-native-tls-vendored Cargo features to compile and statically link to a vendored copy of OpenSSL on Linux.
    • 331f3460 feat(core): add option to use vendored openssl, closes #4470 (#4809) on 2022-08-02
  • Update windows to 0.39.0 and webview2-com to 0.19.1.
    • e6d9b670 refactor: remove unneeded focus code (#5065) on 2022-09-03
  • Add exists function to the fs module.
    • 3c62dbc9 feat(api): Add exists function to the fs module. (#5060) on 2022-09-15
  • [1.0.9]

    • Block remote URLs from accessing the IPC.
      • fa90214b0 feat(core): block remote URLs from accessing the IPC on 2023-04-12

    [1.0.8]

    • Fix the filesystem scope allowing sub-directories of the directory picked by the dialog when recursive option was false.
      • f0602e7c Merge pull request from GHSA-6mv3-wm7j-h4w5 on 2022-12-22

    [1.0.7]

    • Escape glob special characters in files/directories when dropping files or using the open/save dialogs.
      • bcd9dc7f fix(core): escape glob characters in drop/dialogs , closes #5234 (#5237) on 2022-11-08

    [1.0.6]

    • Fix fs.readDir recursive option reading symlinked directories that are not allowed by the scope.
      • bb178829 fix(endpoints/fs/readDir): don't read symlinks that are not allowed b… (#5123) on 2022-09-08

    [1.0.5]

    • Escape the MSI file path when running msiexec via powershell.

    [1.0.4]

    • Reduce the amount of allocations when converting cases.
      • bc370e32 feat: reduce the amount of heck-related allocations (#4634) on 2022-07-11

    [1.0.3]

    • tauri::Builder will now include a default menu for macOS without explicitly using Menu::os_default, you can still override it through tauri::Builder::menu or remove it using tauri::Builder::enable_macos_default_menu(false).
      • 91055883 feat: add implicit default menu for macOS only, closes #4551 (#4570) on 2022-07-04
    • Use toString() on message/confirm/ask dialogs title and message values.
      • b8cd2a79 feat(api): call toString() on dialog title and message, closes #4583 (#4588) on 2022-07-04
    • Fix stack overflow on Windows on commands by changing the implementation of the async_runtime::spawn method.
      • 7e3ac847 fix(core): command stack overflow on Windows, closes #4548 (#4562) on 2022-07-03
    • Emits RunEvent::Exit prior to killing child processes managed by Tauri, allowing graceful shutdown of sidecar binaries.
      • 34879f73 fix: allow graceful shutdown of sidecar commands on exit (#4561) on 2022-07-03
    • Added option to disable tray menu on left click on macOS.
      • f8a3becb feat(core): add option to disable tray menu on left click, closes #4584 (#4587) on 2022-07-05
    • Only run the updater default dialog mode in supported platforms or development mode.
      • e29fff25 fix(updater): do not run in dialog mode on .deb, closes #4573 (#4577) on 2022-07-05
    • Configure the updater to relaunch after installing the update on Windows.

    [1.0.2]

    • Fixes check for local URL when an external URL is provided to the window and it is based on the configured devPath.
      • 2e74d20e fix(core): check whether external url is local, ref #4449 (#4536) on 2022-06-30

    [1.0.1]

    • Added fn new constructors for PhysicalSize, LogicalSize, PhysicalPosition and LogicalPosition and missing conversion methods.
      • c7d13a1c feat(core): add missing methods to the dpi module (#4393) on 2022-06-19
    • Set the bundle name and app metadata in the Info.plist file in development mode.
      • 38f5db6e feat(codegen): fill app metadata in development Info.plist on 2022-06-21
    • Set the application icon in development mode on macOS.
      • 307c2ebf feat(core): set macOS app icon in development (#4385) on 2022-06-19
    • Fixes the error message when using the window.unminimize API without enabling it in the allowlist.
    • Initialize Tauri script when devPath is an external URL with path.
      • 079b1cc0 fix(core): properly get external URL origin, closes #4414 (#4417) on 2022-06-21
    • Fixes deadlock when a plugin window ready event needs to block the thread waiting on the event loop.
      • 9d33d093 fix(core): deadlock on plugin webview ready hook (#4462) on 2022-06-24
    • Adjust the updater to fallback to $HOME/.cache or the current working directory as temp directory if the system default is in a different mount point.
      • fd125f76 fix(updater): fallback if tmp is on different mount point, closes #4500 (#4504) on 2022-06-28
    • Properly fill the origin window when using emit_to and emit_all from Window.
      • 643ae846 fix: fire window-specific event on Window emit_to/emit_all, closes #4493 (#4498) on 2022-06-28
    • Implement raw_window_handle::HasRawWindowHandle on Linux.
      • 3efbc67f feat: implement raw_window_handle on Linux (#4469) on 2022-06-26
    • Added on_drop hook to the plugin::Builder.
      • be4bb391 feat: add AppHandle::remove_plugin and plugin on_drop, closes #4361 (#4443) on 2022-06-23
    • Refactored the tauri-runtime-wry plugin interface.
      • e39e2999 refactor(tauri-runtime-wry): enhance plugin interface (#4476) on 2022-06-27
    • Added AppHandle::remove_plugin.
      • be4bb391 feat: add AppHandle::remove_plugin and plugin on_drop, closes #4361 (#4443) on 2022-06-23
    • The theme API is now implemented on macOS 10.14+.
      • 6d94ce42 feat(core): theme is now implemented on macOS (#4380) on 2022-06-17
    • Suppress unused variable warning in release builds.
      • 45981851 chore(lint): unused variable warnings for release builds (#4411) on 2022-06-22
    • Update tao to 0.12 and wry to 0.19.
      • f6edc6df chore(deps): update tao to 0.12, wry to 0.19, closes #3220 (#4502) on 2022-06-28
    • Added Notification::notify API behind the windows7-compat Cargo feature, which includes Windows 7 support.
      • 57039fb2 fix(core): add windows 7 notification support (#4491) on 2022-06-28

    [1.0.0]

    • Allow choosing multiple folders in dialog.open.
    • Upgrade to stable!

    [1.0.0-rc.17]

    • Add Menu::os_default which will create a menu filled with default menu items and submenus.

    [1.0.0-rc.16]

    • Breaking change: The TrayIcon enum has been removed and now Icon is used instead. This allows you to use more image formats and use embedded icons on Linux.
      • 4ce8e228 refactor(core): use Icon for tray icons (#4342) on 2022-06-14

    [1.0.0-rc.15]

    • Fixes filesystem scope check when using the HTTP API to upload files.
      • 8ce5b762 fix: scope check when using the HTTP API to upload files closes #4312 on 2022-06-10
    • Fixes a memory leak in the command system.
      • f72cace3 fix: never remove ipc callback & mem never be released (#4274) on 2022-06-05
    • Fixes the Content-Type header value when sending multipart requests using the reqwest-client feature.
      • f6205afc fix(core): wrong Content-Type when using reqwest's multipart, ref #4312 on 2022-06-10
    • Kill sidecar processes on app exit even when only the shell-sidecar feature is enabled.
      • 6ba91272 Fix: sidecar cleanup when only shell-sidecar is enabled (#4254) on 2022-06-04
    • Fixes a crash when a request is made to https://tauri.$URL on Windows where $URL is not localhost/** e.g. https://tauri.app.
      • 74457222 fix(core): handle requests to https://tauri.* on Windows (#4270) on 2022-06-05
    • Set notification icon to app icon on Linux.
      • 235e448d fix: add a default icon to notifications on linux (#4283) on 2022-06-09
    • Breaking change: Revert the window creation to be blocking in the main thread. This ensures the window is created before using other methods, but has an issue on Windows where the program deadlocks when creating a window in a Tauri command if it is not async. The documentation now states that commands must be async in other to prevent it until the issue is fixed in Webview2.
      • 69ae6f14 refactor(window): block main thread when creating a new window (#4298) on 2022-06-08
    • No longer ask for permission to send notifications and always allow it.
      • f482b094 fix: remove notification permission prompt (#4302) on 2022-06-09
    • Breaking change: Removed the settings module.
      • f482b094 fix: remove notification permission prompt (#4302) on 2022-06-09
    • Breaking change: Removed the gtk-tray and ayatana-tray Cargo features.
      • 6216eb49 refactor(core): drop ayatana-tray and gtk-tray Cargo features (#4247) on 2022-06-02
    • Call preventDefault() in the mousedown event handler for [data-tauri-drag-region] elements.
      • a0e20621 fix: preventDefault mousedown on data-tauri-drag-region, closes #4059 on 2022-06-13
    • Set permission to 0o700 for the tmp folder used to move the current AppImage on the updater process.
      • b77877fd fix(updater): set tmp folder permissions (#4311) on 2022-06-12

    [1.0.0-rc.14]

    • Breaking change: PackageInfo::version is now a semver::Version instead of a String.
      • 2badbd2d refactor: force semver versions, change updater should_install sig (#4215) on 2022-05-25
      • a7388e23 fix(ci): adjust change file to include tauri-utils and tauri-codegen on 2022-05-27
    • Breaking change: UpdateBuilder::should_update now takes the current version as a semver::Version and a RemoteRelease struct, allowing you to check other release fields.
      • 2badbd2d refactor: force semver versions, change updater should_install sig (#4215) on 2022-05-25
    • Breaking change: The tauri::UpdaterEvent::UpdateEvent date field is now an Option<time::OffsetDateTime>.
      • ac7656ab refactor(updater): strong type for the pub_date field, ref #4162 (#4218) on 2022-05-25
    • Breaking change: The updater response pub_date now must be a valid RFC 3339 string.
      • ac7656ab refactor(updater): strong type for the pub_date field, ref #4162 (#4218) on 2022-05-25

    [1.0.0-rc.13]

    • Fix cannot find macro `message_dialog` error.

    [1.0.0-rc.12]

    • Expose option to set the dialog type.
      • f46175d5 feat(core): expose option to set dialog type, closes #4183 (#4187) on 2022-05-21
    • Expose title option in the message dialog API.
      • ae99f991 feat(core): expose message dialog's title option, ref #4183 (#4186) on 2022-05-21
    • Immediately create windows when using tauri::App as manager.
      • 52d17754 fix(core): immediately create window when using tauri::App, closes #4170 (#4172) on 2022-05-21
    • Account the monitor position when centering a window.
      • a7a9fde1 fix(core): account for monitor position when centering window (#4166) on 2022-05-21
    • Allow the canonical, absolute form of a path for the filesystem scope on Windows if std::fs::canonicalize returns a path, fallback to \\?\$PATH.
      • 78f2565e fix: allow return value of fs::canonicalize on fs scope, closes #4130 (#4188) on 2022-05-21
    • Fixes updater documentation not showing on docs.rs.
      • 55892c35 fix(core): updater documentation not showing on docs.rs (#4190) on 2022-05-22
    • Fixes HTTP timeout not working on Windows when using the attohttpc client.
      • d99c5d58 fix(core): HTTP timeout not working on Windows, closes #4050 (#4185) on 2022-05-21
    • Update windows-rs to 0.37.0, which requires Rust 1.61.0+.
      • 2326be39 feat(core): update windows-rs to 0.37.0 (#4199) on 2022-05-24
    • Breaking change: The WindowBuilder struct now has a lifetime annotation WindowBuilder<R: Runtime, 'a>.
      • 52d17754 fix(core): immediately create window when using tauri::App, closes #4170 (#4172) on 2022-05-21

    [1.0.0-rc.11]

    • Added the App::get_cli_matches helper function.
      • 617f1144 feat(core): add App::get_cli_matches helper ref #4145 on 2022-05-17
    • Fixes fileDropEnabled option not working.
      • 706fcbd3 fix(core): fileDropEnabled option is not working when creating a new WebviewWindow (#4146) on 2022-05-18
    • Prepare window icon and menu even when loading remote URLs. Previously it was behind a is local URL? condition.
      • 25aa4347 fix(core): prepare window icon and menu on remote URLs, closes #4131 (#4140) on 2022-05-16
    • Fix .mjs not being recognised as a file extension for JavaScript files (text/javascript).
    • Added PathResolver::resolve_resource API.
      • e35aaebc feat(core): add PathResolver::resolve_resource API (#4116) on 2022-05-13
    • Allow configuring the display options for the MSI execution allowing quieter updates.
      • 9f2c3413 feat(core): configure msiexec display options, closes #3951 (#4061) on 2022-05-15

    [1.0.0-rc.10]

    • Update wry to 0.16.2 and webkit2gtk to 0.18.0.
      • 71a553b7 chore(deps): update wry to 0.16.2, webkit2gtk to 0.18.0 (#4099) on 2022-05-10
    • Adds the App#wry_plugin API to inject a plugin for the wry integration.
      • c8e0e5b9 feat(tauri-runtime-wry): add plugin API (#4094) on 2022-05-10

    [1.0.0-rc.9]

    • The dangerous_allow_asset_csp_modification configuration value has been changed to allow a list of CSP directives to disable.
      • 164078c0 feat: allow limiting dangerousDisableAssetCspModification, closes #3831 (#4021) on 2022-05-02
    • The file drop event payloads are now percent-decoded.
      • a0ecd81a fix(core): percent decode file drop payloads, closes #4034 (#4035) on 2022-05-03
    • Fix dialog crash on macOS when the default_path value is just the file name.
      • d31167c5 fix(core): dialog crashing on macOS when the parent is empty (#4028) on 2022-05-02
    • Fixes the title option being ignored in the dialog API endpoints.
    • Fixes nested isolation iframe injection.
    • Deserialize numeric values (seconds) in the http API ClientBuilder.connect_timeout and HttpRequestBuilder.timeout fields.
      • f3c5ca89 fix(core): http api connect_timeout deserialization, closes #4004 (#4006) on 2022-04-29
    • Fix updater dialog removing single and double quotes from the release notes
      • 0180dcc8 fix(updater): remove single&double quotes escaping in updater dialog … (#4047) on 2022-05-04
    • Expose methods to access the underlying native handles of the webview.
      • c82b4761 feat(core): expose with_webview API to access the platform webview (#4058) on 2022-05-04

    [1.0.0-rc.8]

    • Breaking change: Removed the ayatana-tray from the default features. You must select one of ayatana-tray and gtk-tray to use system tray on Linux.
      • 62cdb2b3 refactor(tauri): remove ayatana-tray from the default features (#3976) on 2022-04-26
    • Re-export the GlobalShortcutManager when the global-shortcut feature is enabled.
      • 62cdb2b3 refactor(tauri): remove ayatana-tray from the default features (#3976) on 2022-04-26
    • Fixes docs.rs documentation build.

    [1.0.0-rc.7]

    • Breaking change: Removed tauri::api::file::ArchiveFormat::Plain.
      • f7d3d93b refactor(core): improve performance of the extract API (#3963) on 2022-04-25
    • Fallback to {path}.html when {path} is not found in the Tauri custom protocol handler.
      • 7864d41d feat(core): fallback to {path}.html in Tauri protocol loader ref #3887 (#3939) on 2022-04-21
    • Breaking change: Use ayatana-appindicator for Linux system tray by default. Use the gtk-tray Cargo feature to use libappindicator instead.
      • f2a30d8b refactor(core): use ayatana appindicator by default, keep option to use gtk (#3916) on 2022-04-19
    • Reduce the amount of generated code for the API endpoints.
      • c23f139b perf(core): improve binary size with api enum serde refactor (#3952) on 2022-04-24
    • *Breaking change:: Added the clipboard Cargo feature.
      • 24e4ff20 refactor(core): add clipboard Cargo feature, enhancing binary size (#3957) on 2022-04-24
    • Breaking change: The process Command API stdio lines now includes the trailing \r.
      • b5622882 fix(cli): exit on non-compilation Cargo errors, closes #3930 (#3942) on 2022-04-22
    • Expose Window cursor APIs set_cursor_grab, set_cursor_visible, set_cursor_icon and set_cursor_position.
    • Breaking change: The tauri::api::file::Extract#extract_file function has been moved to tauri::api::file::Entry#extract.
      • f7d3d93b refactor(core): improve performance of the extract API (#3963) on 2022-04-25
    • Breaking change: The tauri::api::file::Extract#files function has been renamed to with_files for performance reasons.
      • f7d3d93b refactor(core): improve performance of the extract API (#3963) on 2022-04-25
    • Improved the performance of the tauri::api::fs::Extract API.
      • f7d3d93b refactor(core): improve performance of the extract API (#3963) on 2022-04-25
    • Fixes a panic when using the create_tao_window API.
      • 320329a9 fix(core): insert to webview_id_map on tao window creation, closes #3883 (#3932) on 2022-04-21
    • Fixes the HTTP API form text fields.
      • cc356084 fix(core): do not serialize strings in http api form, closes #3910 (#3928) on 2022-04-20
    • Set the application bundle identifier for the notifications on macOS.
      • f67ae6bd fix(core): set bundle id for notifications on macOS (#3839) on 2022-04-01
    • Fixes a panic when a menu event is triggered when all windows are minimized on macOS.
      • 70ff55c1 fix(core): panic on menu event with minimized windows, closes #3902 (#3918) on 2022-04-20
    • Fixes a rendering issue when resizing the window with the devtools open.
    • Fixes the WindowBuilder export.
      • 985d2508 fix(tauri): export WindowBuilder struct instead of trait, closes #3827 (#3833) on 2022-03-31
    • The HTTP API now supports multipart/form-data requests. You need to set the Content-Type header and enable the http-multipart Cargo feature.
      • 1397d912 feat(core): add support to multipart/form-data requests, closes #2118 (#3929) on 2022-04-22
    • *Breaking change:: Added the global-shortcut Cargo feature.
      • e11878bc refactor(core): add global-shortcut Cargo feature, enhancing binary size (#3956) on 2022-04-24
    • Added tauri::api::http::HttpRequestBuilder#header method.
      • 81705bb3 feat(updater): add method to set request headers closes #3896 (#3931) on 2022-04-22
    • Breaking change: The tauri::api::http::HttpRequestBuilder#headers method now takes header::HeaderMap instead of a HashMap.
      • 81705bb3 feat(updater): add method to set request headers closes #3896 (#3931) on 2022-04-22
    • Breaking change: The tauri::api::http::Response#headers method now returns &header::HeaderMap instead of &HashMap.
      • 81705bb3 feat(updater): add method to set request headers closes #3896 (#3931) on 2022-04-22
    • Breaking change: The api::http timeouts are now represented as std::time::Duration instead of a u64.
      • 0ecfad59 refactor(updater): unset request timeout, add builder setter (#3847) on 2022-04-02
    • Breaking change: The tauri::api::http::FormPart::Bytes enum variant has been renamed to File with a value object { file, mime, file_name }.
      • 1397d912 feat(core): add support to multipart/form-data requests, closes #2118 (#3929) on 2022-04-22
    • Breaking change: Removed App::create_window, AppHandle::create_window, Builder::create_window and Window::create_window.
      • 7c7d854a refactor(core): remove deprecated APIs (#3834) on 2022-04-01
    • Breaking change: Removed tauri::api::http::FormPart::File.
      • cc356084 fix(core): do not serialize strings in http api form, closes #3910 (#3928) on 2022-04-20
    • Added WindowEvent::ThemeChanged(theme).
    • Added theme getter on Window.
    • Added UpdateResponse::body and UpdateResponse::date.
      • c7696f34 feat(updater): add body and date getters (#3802) on 2022-03-29
    • Breaking change: Removed the tauri::updater::Error::UnsupportedPlatform variant and added UnsupportedLinuxPackage, UnsupportedOs and UnsupportedArch for better error information.
      • ed716793 refactor(updater): improve unsupported error variants, closes #3817 (#3849) on 2022-04-05
    • Add updater Downloaded status event.
      • 9712ed1a feat(updater): add Downloaded status event (#3804) on 2022-04-01
    • Allow setting app updater request headers via AppHandle::updater().header().
      • 81705bb3 feat(updater): add method to set request headers closes #3896 (#3931) on 2022-04-22
    • The updater default timeout is now unset, and the UpdateBuilder has a timeout setter.
      • 0ecfad59 refactor(updater): unset request timeout, add builder setter (#3847) on 2022-04-02
    • Added theme setter to the WindowBuilder.

    [1.0.0-rc.6]

    • Fixes the WindowEvent type used on Window::on_window_event.
      • 06aa87b6 fix(core): WindowEvent type used on Window::on_window_event (#3796) on 2022-03-28
    • Fixes WindowEvent::Destroyed not firing.
      • 169b5035 fix(core): actually fire WindowEvent::Destroyed (#3797) on 2022-03-28

    [1.0.0-rc.5]

    • Added updater_target method to the Builder struct.

      • 579312f8 feat(updater): separate intel and apple silicon targets, closes #3359 (#3739) on 2022-03-23
    • Added an option to disable the CSP injection of distributable assets nonces and hashes.

      • f6e32ee1 feat(core): add dangerous option to disable compile time CSP injection (#3775) on 2022-03-28
    • Toggle devtools when Ctrl + Shift + I or Command + Option + I is pressed.

    • Use asynchronous file dialog on macOS and Windows to properly set the parent window.

    • The Error enum is now Send + Sync.

      • da1e8793 feat(core): improve and cleanup the Error enum (#3748) on 2022-03-22
    • Do not allow path traversal on the asset protocol.

      • 34a402f9 fix(core): do not allow path traversal on the asset protocol (#3774) on 2022-03-27
    • Properly apply the CSP when loading a route that fallbacks to index.html.

      • bcd43168 fix(core): properly add CSP header to fallback routes (#3641) on 2022-03-08
    • Fix CSP usage on Linux when changing it via the on_web_resource_request handler.

      • f5efc248 fix(core): runtime CSP changes on Linux on 2022-03-07
    • Improved the updater response validation and error messages.

      • dbc2873e feat(updater): improve validation and error messages, closes #3761 (#3780) on 2022-03-27
    • Breaking change: The MenuItem::About variant is now associated with a tuple value (String, AboutMetadata).

      • 5fb74332 chore(deps): update wry to 0.14, tao to 0.7 (#3790) on 2022-03-28
    • Replace multiple dependencies who's C code compiled concurrently and caused the other ones to bloat compile time significantly.

    • zstd -> brotli

    • blake3 -> a vendored version of the blake3 reference

    • ring -> getrandom

    See https://github.com/tauri-apps/tauri/pull/3773 for more information about these specific choices.

    • 8661e3e2 replace dependencies with long build times when used together (closes #3571) (#3773) on 2022-03-27
    • Breaking change: The Window::hwnd method now returns HWND from windows-rs crate instead of c_void on Windows.
    • Support window parenting on macOS
    • Breaking change: The updater default targets have been renamed to include better support for different architectures.
      • 579312f8 feat(updater): separate intel and apple silicon targets, closes #3359 (#3739) on 2022-03-23
    • Breaking change: Removed RunEvent::CloseRequested and RunEvent::WindowClosed and added RunEvent::WindowEvent.
      • edad9f4f refactor(core): add RunEvent::WindowEvent (#3793) on 2022-03-28
    • Breaking change: Removed window_label from RunEvent::ExitRequested.
      • 9ddf8d84 fix(core): properly fire WindowEvent::Destroyed, closes #3688 (#3778) on 2022-03-28
    • Breaking change: The tauri:// events are no longer emitted to listeners using Window::listen. Use the App::run closure, Window::on_window_event and Window::on_menu_event instead.
      • 5d538ec2 refactor(core): use the event loop proxy to send updater events (#3687) on 2022-03-15
    • The App::setup closure can now return a boxed error directly.
      • da1e8793 feat(core): improve and cleanup the Error enum (#3748) on 2022-03-22
    • Implement Debug for tauri::State.
    • Breaking change: The Manager::manage function now returns a bool indicating whether the type is already managed or not.
      • 263b45e1 refactor(core): return boolean on Manager::manage (#3682) on 2022-03-13
    • Set the Access-Control-Allow-Origin header on the tauri protocol response with the initial webview URL as value.
      • 1730b1a5 feat(core): enable CORS on the tauri protocol (#3750) on 2022-03-22
    • Breaking change: The tauri_runtime crate is no longer exported since its API is not stable.
      • 1099a969 refactor(core): do not export tauri_runtime on tauri (#3749) on 2022-03-22
    • Added Temp to the BaseDirectory enum.
      • 266156a0 feat(core): add BaseDirectory::Temp and $TEMP variable (#3763) on 2022-03-24
    • Added $TEMP to the allowed variables to the filesystem and asset protocol scopes.
      • 266156a0 feat(core): add BaseDirectory::Temp and $TEMP variable (#3763) on 2022-03-24
    • Update wry to 0.14 and tao to 0.7.
      • f2d24ef2 chore(deps): update wry (#1482) on 2021-04-14
      • e267ebf1 Apply Version Updates From Current Changes (#1486) on 2021-04-14
      • 5fb74332 chore(deps): update wry to 0.14, tao to 0.7 (#3790) on 2022-03-28
    • Added updater method to App and AppHandle, a builder to check for app updates.
      • 4094494a feat(core): add API to manually trigger updater check (#3712) on 2022-03-17
      • c64268f9 feat(updater): expose builder, allow setting a custom version checker (#3792) on 2022-03-28
    • Allow using a custom updater version checker via App::updater().should_install().
      • c64268f9 feat(updater): expose builder, allow setting a custom version checker (#3792) on 2022-03-28
    • Added download progress events to the updater.
      • f0db3f9b feat(updater): add download progress events (#3734) on 2022-03-18
    • Send updater events to the App::run closure.
      • 5d538ec2 refactor(core): use the event loop proxy to send updater events (#3687) on 2022-03-15
    • Run the updater on startup even if no window was created.
      • c4ca80f9 feat(core): use AppHandle instead of Window on the updater logic (#3702) on 2022-03-15
    • Properly fire the window destroyed event.
      • 9ddf8d84 fix(core): properly fire WindowEvent::Destroyed, closes #3688 (#3778) on 2022-03-28
    • Added close_devtools and is_devtools_open APIs to the Window struct.
    • Added the WindowEvent::FileDrop variant.
    • Added a configuration flag for disallowing install downgrades on Windows. Breaking change: The default behavior on Windows is now to allow downgrades.
      • 8b807e09 refactor(bundler): allow downgrades, add option to disallow on Windows (#3777) on 2022-03-27

    [1.0.0-rc.4]

    • Run AppHandle cleanup code before restarting the application on the process > relaunch API.
      • 9c65abce feat(core): run cleanup code on the relaunch API (#3629) on 2022-03-07
    • Breaking change: The Builder#create_window API now returns a Result validating the window label.
      • 64e00542 refactor(core): do not panic on invalid window labels,#3544 (#3596) on 2022-03-03
    • Added tsp config option under tauri > bundle > windows, which enables Time-Stamp Protocol (RFC 3161) for the timestamping server under code signing on Windows if set to true.
      • bdd5f7c2 fix: add support for Time-Stamping Protocol for Windows codesigning (fix #3563) (#3570) on 2022-03-07
    • Revert the clap usage back to the version 3.0 API.
      • 2b554c38 fix(core): revert to clap 3.0 API, allow deprecations, closes #3549 (#3552) on 2022-02-24
    • The tauri::api::process::Command API now properly reads stdout and stderr messages that ends with a carriage return (\r) instead of just a newline (\n).
      • 0a0de8ab fix: read Command output ending with a carriage return, closes #3508 (#3523) on 2022-02-24
    • Fixes filesystem and asset scope stripping the first component of the allowed path.
      • 4d0e2ecc fix(core): scope should not strip the first path component, closes #3592 (#3602) on 2022-03-03
    • Ignore trailing slashes on path scope validation.
      • 929a83dd fix(core): ignore trailing slashes on scope validation, closes #3580 (#3601) on 2022-03-03
    • Fixes Command::output and Command::status deadlock when running on async commands.
      • 0163489e fix(core): safe_block_on usage on async contexts, closes #3505 (#3513) on 2022-02-24
    • Update tray menu id map when SystemTrayHandle::set_menu is called.
      • da882431 fix(core): update tray menu ids on set_menu, closes #3608 (#3611) on 2022-03-04
    • Allow absolute paths on the filesystem APIs as long as it does not include parent directory components.
      • b744cd27 feat: extend scopes with user selected paths, closes #3591 (#3595) on 2022-03-03
    • Breaking change: The tauri::api::file::Extract API is now available when the fs-extract-api feature is enabled.
      • 0f155898 fix(core): docs.rs on Windows and macOS (#3566) on 2022-03-02
    • Allow listening to events on the filesystem and asset scopes.
      • 58070c1e feat(core): filesystem and asset protocol scope events (#3609) on 2022-03-04
    • Allow configuring forbidden paths on the asset and filesystem scopes.
      • 983ccb81 feat(core): allow denying paths on the fs and asset scopes (#3607) on 2022-03-03
    • Extend the allowed patterns for the filesystem and asset protocol when the user selects a path (dialog open and save commands and file drop on the window).
      • b744cd27 feat: extend scopes with user selected paths, closes #3591 (#3595) on 2022-03-03
    • The HTTP scope now matches the entire URL using a glob pattern instead of only its path.
      • 944b124c feat(core): enhance HTTP scope glob validation, closes #3507 (#3515) on 2022-02-24
    • Parse window icons at compile time.
      • 8c935872 refactor(core): move png and ico behind Cargo features (#3588) on 2022-03-05
    • Breaking change: Move ico and png parsing behind icon-ico and icon-png Cargo features.
      • 8c935872 refactor(core): move png and ico behind Cargo features (#3588) on 2022-03-05
    • Return an error when creating a window with an invalid label instead of panicking.
      • 64e00542 refactor(core): do not panic on invalid window labels,#3544 (#3596) on 2022-03-03
    • Allows the configuration CSP to be an object mapping a directive name to its source list.
      • 3fe0260f feat(core): allow CSP configuration to be an object, ref #3533 (#3603) on 2022-03-04
    • Allow range in the form of bytes=0-* on the asset protocol.
    • Reimplement endpoint to read file as string for performance.
      • 834ccc51 feat(core): reimplement readTextFile for performance (#3631) on 2022-03-07
    • Breaking change: Renamed the command Cargo feature to process-command-api.
      • 4e1af005 refactor(core): rename command feature to process-command-api (#3594) on 2022-03-03
    • Disabled the default features for the zip crate.
      • 5293445f refactor(core): disable default features for the zip crate (#3624) on 2022-03-06
    • The cmd field is no longer required on the shell scope for sidecars.
      • 9b3b163b feat(core): simplify scope definition for sidecars (#3574) on 2022-03-02
    • Fixes a regression on the unlisten command.
      • 76c791bd fix(core): regression on the unlisten function (#3623) on 2022-03-06
    • Run AppHandle cleanup code before restarting the application when a new update is installed.
      • fce7d3bb feat(core): run app cleanup code before updater restart, closes #3605 (#3616) on 2022-03-04
    • Added a WindowBuilder type.
      • 141133a4 feat(core): add WindowBuilder type (#3598) on 2022-03-04
    • Added WindowBuilder::on_web_resource_request, which allows customizing the tauri custom protocol response.

    [1.0.0-rc.3]

    • tauri::plugin::Builder closures are no longer required to implement Sync.
      • fb7ee2c9 drop Sync req from setup and setup_with_config (#3471) on 2022-02-16
      • b8e4d651 fix(core): drop all plugin builder Sync requirements (#3490) on 2022-02-17
    • Added context to the file system endpoint errors.
      • 06053833 feat(core): add context to the filesystem APIs errors, closes #3457 (#3480) on 2022-02-16
    • Changed the default value for tauri > bundle > macOS > minimumSystemVersion to 10.13.
      • fce344b9 feat(core): set default value for minimum_system_version to 10.13 (#3497) on 2022-02-17

    [1.0.0-rc.2]

    • Ease the requirements for plugin hooks. setup and setup_with_config can now be FnOnce and on_webview_ready, on_event and on_page_load can be FnMut.
    • Fixes an issue with the updater when replacing the {{target}} and {{current_version}} variables due to percent-encoding on the Url that is parsed from the configuration.

    [1.0.0-rc.1]

    • Change default value for the freezePrototype configuration to false.

    [1.0.0-rc.0]

    • The dialog allowlist now includes flags for the message, ask and confirm APIs.
      • d660cab3 feat: enhance allowlist configuration [TRI-027] (#11) on 2022-01-09
    • - Breaking change: Renamed tauri::Event to tauri::RunEvent
    • Exported tauri::Event and tauri::EventHandler so you can define a function and pass it to Window::listen
    • 15358b18 Expose event interface. fixes #2733 (#3321) on 2022-02-04
    • The tauri::api modules http, notification, dialog, and process::Command APIs are now hidden behind a feature flag, http-api, notification, dialog and command, respectively.
      • 6feb5a0c refactor(core): api feature flags, documentation (#26) on 2022-01-09
    • Add title option to file open/save dialogs.
      • e1d6a6e6 Create api-file-dialog-title.md (#3235) on 2022-01-16
      • 62c7a8ad chore(covector): prepare for rc release (#3376) on 2022-02-10
    • Added any_thread() to the tauri::Builder to run applications on any thread (only exposed on Linux and Windows).
      • af44bf81 feat(core): allow app run on any thread on Linux & Windows, closes #3172 (#3353) on 2022-02-07
    • Enable CORS on the asset protocol.
      • d28ac8aa fix(core): enable CORS on the asset protocol, closes #2965 (#2974) on 2021-12-09
    • The asset:// custom protocol is only defined when either the api-all, protocol-all or protocol-asset feature flags are enabled. These feature flags are accessible with the tauri.conf.json allowlist.
      • 7920ff14 feat: scope the fs API and the asset protocol [TRI-026] [TRI-010] [TRI-011] (#10) on 2022-01-09
    • Expose the asset_resolver API on the App and AppHandle structs.
      • 7c6c7adc feat(core): add asset_resolver API (#2879) on 2021-11-12
    • Breaking change: Refactored the types returned from the async_runtime module.
      • a3537078 feat(core): allow running along another tokio runtime, closes #2838 (#2973) on 2021-12-08
    • Added tauri::async_runtime::set method, allowing to share your tokio runtime with Tauri.
      • a3537078 feat(core): allow running along another tokio runtime, closes #2838 (#2973) on 2021-12-08
    • Added tauri::async_runtime::spawn_blocking API.
      • a3537078 feat(core): allow running along another tokio runtime, closes #2838 (#2973) on 2021-12-08
    • The callback and error invoke fields, along with other transformCallback usages, are now validated to be numeric.
      • a48b8b18 feat(core): validate callbacks and event names [TRI-038] [TRI-020] (#21) on 2022-01-09
    • Change Error::ParseCliArguments(clap::Error) to Error::ParseCliArguments(String) because clap::Error is not Send.
    • The api::process::Command APIs are now hidden behind the command feature flag.
      • eed01728 feat(core): add shell > sidecar allowlist and process feature flag [TRI-037] (#18) on 2021-10-24
    • Add tauri::api::path::log_dir function to access the suggested log directory path.
    • The process, path and updater APIs now takes a tauri::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() and normalize() from the path module, won't throw errors if the path doesn't exist, which matches NodeJS behavior.
      • fe381a0b fix: join no longer cares if path doesn't exist, closes #2499 (#2548) on 2021-09-21
    • Breaking change: Return Window on App and AppHandle's create_window function.
      • e15a8af8 refactor(core): return Window on create_window API (#3211) on 2022-01-13
      • 62c7a8ad chore(covector): prepare for rc release (#3376) on 2022-02-10
    • Apply nonce to script and style tags and set them on the CSP (script-src and style-src fetch directives).
      • cf54dcf9 feat: improve CSP security with nonces and hashes, add devCsp [TRI-004] (#8) on 2022-01-09
    • The path returned from tauri::api::process::current_binary is now cached when loading the binary.
      • 7c3db7a3 cache current binary path much sooner (#45) on 2022-02-01
    • Added an API to use a custom invoke system to receive and respond to commands (Builder#invoke_system).
      • 15164d93 feat(core): allow defining a custom invoke system (#2899) on 2021-11-16
    • Inject configured CSP on data: URLs.
      • 8259cd64 feat(core): inject CSP on data URLs [TRI-049] (#16) on 2022-01-09
    • Emit tauri://* events to Rust listeners.
      • 4c4ab1eb fix(core): trigger tauri://* events to Rust listeners, closes #2901 (#2902) on 2021-11-16
    • Emit tauri://window-created event for windows created on the backend.
      • 1dbd887a fix(core): emit tauri://window-created event for windows created on Rust (#3299) on 2022-02-04
    • Enable non-session cookie persistence on Linux.
      • d7c02a30 feat(core): persist non-session cookies on Linux (#3052) on 2021-12-09
    • Expose tauri::api::ipc::{serialize_js_with, serialize_js} functions.
      • 5a94200f feat(core): expose functions to serialize serde::Serialize values to JS (#3354) on 2022-02-07
    • Resolve asset protocol HTTP request instead of panicking if the file does not exist or cannot be read.
      • 03fc92c8 fix(core): resolve request instead of panicking on asset protocol (#3347) on 2022-02-06
    • Avoid async_runtime::block_on panics when used along another tokio runtime.
      • a3537078 feat(core): allow running along another tokio runtime, closes #2838 (#2973) on 2021-12-08
    • Prevent window closing if tauri://close-requested is listened on the JS layer. Users must call appWindow.close() manually when listening to that event.
      • 74dff536 fix(core): emit tauri://close-requested to JS, closes #2996 (#3041) on 2021-12-09
    • Fixes a deadlock when creating a window from a menu event handler.
      • 9c82006b fix(core): deadlock when creating window from menu handler, closes #3110 (#3126) on 2021-12-28
    • Fixes the dialog defaultPath usage on Linux.
    • Fixes WindowEvent::Focus and WindowEvent::Blur events not firing.
      • 3b33d67a fix: re-adding focus/blur events for linux and macos (fix #2485) (#2489) on 2021-08-24
    • Fixes tauri://focus and tauri://blur events not firing.
      • 3b33d67a fix: re-adding focus/blur events for linux and macos (fix #2485) (#2489) on 2021-08-24
    • Use webview's inner_size instead of window's value to get the correct size on macOS.
    • Fixes resource directory resolution on Linux.
      • 1a28904b fix(core): resource path resolution on Linux, closes #2493 on 2021-08-22
    • Fixes the menu id mapping not reflecting the current window.
      • ac37b56e fix(core): menu id map not reflecting the current window menu (#2726) on 2021-10-08
    • Manager::once_global and Window::once allow FnOnce callbacks.
      • d5400a3d once_global and once accept FnOnce callbacks (#3383) on 2022-02-10
    • Properly check if document is loaded before invoking commands.
      • 000d126e fix(core): properly check if document is loaded, closes #2716 (#2900) on 2021-11-16
    • 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 the SystemTray to run its cleanup code.
      • a03b8554 fix(core): tray not closing on Windows (#3351) on 2022-02-07
    • Immediately listen to tauri://window-created event to catch it before the application triggers it.
      • 878b8b9a fix(core): immediately listen to window-created, closes #3297 (#3298) on 2022-02-04
    • The tauri::Window#emit function now correctly sends the event to all windows that has a registered listener. Breaking change: Window#emit_and_trigger and Window#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.
      • 85df94f2 feat(core): config for fixed webview2 runtime version path (#27) on 2021-11-02
    • The updater pubkey is now a required field for security reasons. Sign your updates with the tauri signer command.
      • d95cc831 feat: enforce updater public key [TRI-015] (#42) on 2022-01-09
    • tauri::api::HttpRequestBuilder::new now returns a Result to validate the url.
      • 0ad1c651 feat(core): add http allowlist scope [TRI-008] (#24) on 2021-10-29
    • Added the isolation pattern.
    • Added abort method to tauri::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:

    1. Check if tauri.conf.json exists a. Parse it with serde_json b. Parse it with json5 if serde_json fails c. Return original serde_json error if all above steps failed
    2. Check if tauri.conf.json5 exists a. Parse it with json5 b. Return error if all above steps failed
    3. 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 via stopImmediatePropagation().
      • 10e3190f fix(core): do not use capture on _blank link event handler, closes #2791 (#3349) on 2022-02-07
    • The run_return API is now available on Linux.
      • 8483fde9 feat(core): expose run_return on Linux (#3352) on 2022-02-07
    • Allow window, global shortcut and clipboard APIs to be called on the main thread.
      • 2812c446 feat(core): window, shortcut and clipboard API calls on main thread (#2659) on 2021-09-26
      • d24fd8d1 feat(tauri-runtime-wry): allow window creation and closing on the main thread (#2668) on 2021-09-27
    • Add Menu::with_items constructor, taking an iterator of MenuEntry.
    • The updater now expects signatures created with the latest CLI release.
    • Change event loop callbacks definition to allow callers to move in mutable values.
      • bdbf905e Transformed event-loop callback to FnMut to allow mutable values (#2667) on 2021-09-27
    • Fixes Notification.requestPermission() deadlock.
      • 48f3768c fix(core): Notification.requestPermission() deadlock regression on 2021-08-24
    • Added Window#open_devtools API.
    • Add a plugin::Builder struct to make plugin creation more convenient.
    • Added on_event on the Plugin trait, which allows a plugin to react to the event loop.
      • cc2f39a2 feat(core): add on_event hook on the Plugin trait (#2656) on 2021-09-26
    • Prevent path traversal on the file system APIs.
      • 4d89f60d refactor(core): prevent path traversal [TRI-012] (#35) on 2021-12-06
    • Breaking change: Add macos-private-api feature flag, enabled via tauri.conf.json > tauri > macOSPrivateApi.
      • 6ac21b3c feat: add private api feature flag (#7) on 2022-01-09
    • Add raw_headers to tauri::api::http::ResponseData.
    • Implement raw_window_handle::RawWindowHandle for tauri::Window on Windows and macOS. The tauri::api::dialog::window_parent function was removed since now you can use the window directly.
      • e98c1af4 feat(core): expose message dialog APIs, fix window.confirm, implement HasRawWindowHandle for Window, closes #2535 (#2700) on 2021-10-02
    • Refactor create_tao_window API to return Weak<Window> instead of Arc<Window>.
      • c1494b35 refactor: return Weak on create_tao_window on 2021-08-31
    • Added the tauri::api::dialog::blocking module.
      • 4818531a refactor(core): add blocking dialog APIs, improve docs, closes #3255 (#3270) on 2022-02-05
    • The notification endpoint now checks for the permission flag and requests if the value is not set.
      • 239bba56 refactor(core): check notification permission on the Rust endpoint [TRI-017] (#23) on 2022-01-09
    • Breaking change: The WindowEvent::CloseRequested variant now includes label and signal_tx fields to allow preventing closing the window.
      • 74dff536 fix(core): emit tauri://close-requested to JS, closes #2996 (#3041) on 2021-12-09
    • Breaking change: Move __currentWindow and __windows values from window.__TAURI__ to window.__TAURI_METADATA__.
      • f5109e0c fix(api): window label null instead of actual value, closes #3295 (#3332) on 2022-02-04
    • Remove the BaseDirectory::Current enum variant for security reasons.
      • 696dca58 refactor(core): remove BaseDirectory::Current variant on 2022-01-26
    • Breaking change: Remove default webview window when tauri.conf.json > tauri > windows is not set.
      • c119060e refactor(core): empty default value for config > tauri > windows (#3380) on 2022-02-10
    • Breaking change: Renamed the rpc module to ipc.
      • 3420aa50 refactor: IPC handler [TRI-019] (#9) on 2022-01-09
    • Expose run_on_main_thread APIs on Window and AppHandle.
      • 53fdfe52 feat(core): expose run_on_main_thread API (#2711) on 2021-10-04
    • The minimum Rust version is now 1.56.
      • a9dfc015 feat: update to edition 2021 and set minimum rust to 1.56 (#2789) on 2021-10-22
    • The minimum Rust version is now 1.57.
    • Scopes the filesystem APIs from the webview access using tauri.conf.json > tauri > allowlist > fs > scope. Scopes the asset protocol access using tauri.conf.json > tauri > allowlist > protocol > assetScope. Scopes the http APIs from the webview access using tauri.conf.json > tauri > allowlist > http > scope. Scopes the shell execute API from the webview access using tauri.conf.json > tauri > allowlist > shell > scope. Additionally, check the tauri.conf.json > tauri > bundle > externalBin to prevent access to unknown sidecars.
      • 7920ff14 feat: scope the fs API and the asset protocol [TRI-026] [TRI-010] [TRI-011] (#10) on 2022-01-09
      • 0ad1c651 feat(core): add http allowlist scope [TRI-008] (#24) on 2021-10-29
      • d4db95e7 feat(core): shell execute API scope [TRI-002] (#36) on 2021-12-01
    • Builder#setup closure type changed from Fn to FnOnce.
      • 3f3599b9 refactor(core): change setup closure type to FnOnce, closes #3061 (#3065) on 2021-12-27
    • The tauri::api::shell::open's with argument is now an enum value instead of any string.
      • 63921fad refactor: change tauri::api::open with argument to an enum [TRI-022] (#19) on 2022-01-09
    • The shell allowlist now includes a sidecar flag, which enables the use of the shell API to execute sidecars.
      • eed01728 feat(core): add shell > sidecar allowlist and process feature flag [TRI-037] (#18) on 2021-10-24
    • Breaking change: The sidecar's target triple suffix is now removed at build time.
      • 3035e458 Remove target triple from sidecar bin paths, closes #3355 (#3356) on 2022-02-07
    • Fix streaming of small files using the asset protocol.
      • 151e629e fix(core): streaming of small files using asset://, closes #2854 (#3039) on 2021-12-09
    • Add set_menu API on tauri::SystemTrayHandle.
      • 0e4d12b5 fix: #2502 Expose set_menu from tao through the TrayHandle struct (#2532) on 2021-10-02
    • Adds unlisten function to the Window struct.
      • 3a59f5f7 Unlisten to an event on this window (#2664) on 2021-09-28
    • Force updater endpoint URL to use https on release builds.
      • c077f449 feat: force endpoint URL to use https on release [TRI-015] (#41) on 2022-01-09
    • Validate the std::env::current_exe return value if APPDIR or APPIMAGE environment variables are set.
      • 6fbd6dba feat(core): validate AppImage execution when env vars are set [TRI-041] (#17) on 2021-10-24
    • 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 _.
      • a48b8b18 feat(core): validate callbacks and event names [TRI-038] [TRI-020] (#21) on 2022-01-09
    • The window label is now validated and must be alphanumeric, resulting in a panic if it isn't.
      • 680554de feat: validate window label [TRI-021] (#13) on 2021-10-23
    • Allow tauri.conf.json > package > version to specify a path to a package.json file and pull the version from it.
      • 46f2eae8 feat: allow config's version to be a path to package.json, closes #2967 (#2971) on 2022-01-07
    • Added clipboard field on the WebviewAttributes struct, which must be set to true to enable clipboard access on the webview.
      • d42ccfb3 feat: add clipboard flag to WebviewAttributes [TRI-032] (#12) on 2021-10-23
    • Replace all of the winapi crate references with the windows crate, and replace webview2 and webview2-sys with webview2-com and webview2-com-sys built with the windows crate. This goes along with updates to the TAO and WRY next branches.
      • bb00d5bd Replace winapi with windows crate and use webview2-com instead of webview2 (#2615) on 2021-09-24
    • Show Ok/Cancel buttons instead of Yes/No when executing window.confirm.
      • e98c1af4 feat(core): expose message dialog APIs, fix window.confirm, implement HasRawWindowHandle for Window, closes #2535 (#2700) on 2021-10-02
    • 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 the windows crate instead of sharing bindings in webview2-com-sys.
      • 34be6cf3 Update webview2-com and windows crates (#2875) on 2021-11-11
    • [1.0.0-beta.8]

      • Fix missing asset protocol path.Now the protocol is https://asset.localhost/path/to/file on Windows. Lunix and macOS is still asset://path/to/file.
        • 994b5325 fix: missing asset protocol path (#2484) on 2021-08-23
      • Breaking change: Removed register_uri_scheme_protocol from the WebviewAttributes struct and renamed register_global_uri_scheme_protocol to register_uri_scheme_protocol on the Builder struct, which now takes a Fn(&AppHandle, &http::Request) -> http::Response closure.
      • Migrate to latest custom protocol allowing Partial content streaming and Header parsing.

      [1.0.0-beta.7]

      • Cleanup application on AppHandle#exit.
      • Fix raw-window-handle dependency declaration.

      [1.0.0-beta.6]

      • Breaking change: The tauri::async_runtime::spawn function now returns tauri::async_runtime::JoinHandle<T>.

        • 9aeb04fa feat(core): async_runtime handle API, spawn returns JoinHandle (#2399) on 2021-08-11
      • Breaking change: Added window_parent: Option<&Window> as first argument to the ask and message APIs on the tauri::api::dialog module.

        • c76f4b7d feat(core): set parent window on ask and message dialog APIs (#2454) on 2021-08-16
      • Allow the tauri::api::dialog APIs to be executed on any secondary thread. Breaking change: All dialog APIs now takes a closure instead of returning the response on the function call.

        • 2088cd0f refactor(core): handle dialog threading internally, closes #2223 (#2429) on 2021-08-14
        • 60b1e260 chore: adjust change file on 2021-08-16
      • Breaking change: The Plugin trait initialize method now takes an AppHandle reference instead of App.

        • c17532f7 refactor(core): change Plugin initialize signature, move register t… (#2347) on 2021-08-03
      • Breaking change: Remove menu feature flag since there's no package dependency need to be installed on any platform anymore.

      • Adds set_activation_policy API to the tauri::App struct (macOS only).

      • Add handle API to tauri::async_runtime.

        • 9aeb04fa feat(core): async_runtime handle API, spawn returns JoinHandle (#2399) on 2021-08-11
      • Assets will now fallback to <uri>/index.html before /index.html, allowing anchor links to work as expected.

        • d22da650 fix(core): fallback to {asset}/index.html before index.html, closes #2328 (#2329) on 2021-08-02
      • Fix data-tauri-drag-region double-click, will now respect resizable: false and won't maximize.

        • 1a510066 fix(core): data-tauri-drag-region didn't respect resizable, closes #2314 (#2316) on 2021-08-02
      • Fix Notification.requestPermission() throwing Unhandled Promise Rejection: TypeError: undefined is not a function (near '...window.__TAURI__.invoke...')

      • Fix blur/focus events being incorrect on Windows.

        • d832d575 fix(windows): use webview events on windows (#2277) on 2021-07-23
      • Move items which tauri::api re-exports from tauri-utils to individual module utils. Because these items has their own Error/Result types which are not related to api module at all.

        • 12642a1a doc: update doc in tauri-utils and tauri (#2435) on 2021-08-15
        • cd55d671 doc: update tauri documentations (#2446) on 2021-08-16
      • Allow registering a plugin through an AppHandle instance using the plugin method.

        • 5b7be813 feat(core): add plugin register API on the Manager trait (#2340) on 2021-08-02
        • c17532f7 refactor(core): change Plugin initialize signature, move register t… (#2347) on 2021-08-03
      • Embed Info.plist file contents on binary on dev.

        • 537ab1b6 feat(core): inject src-tauri/Info.plist file on dev and merge on bundle, closes #1570 #2338 (#2444) on 2021-08-15
      • Add ExitRequested event that allows preventing the app from exiting when all windows are closed, and an AppHandle.exit() function to exit the app manually.

        • 892c63a0 feat(#2287): Add ExitRequested event to let users prevent app from exiting (#2293) on 2021-08-09
      • Change App.create_window() and AppHandle.create_window() to accept an Into<String> type instead of String.

        • 8216cba1 App.create_window() to accept any Into<String> type (fix #2290) (#2291) on 2021-07-26
      • Fixes defaultPath option on dialog API not setting the file name if it doesn't exist on Linux.

        • 8b2cc261 fix(core): dialog's defaultPath behavior on Linux, closes #2232 (#2382) on 2021-08-10
      • Fix ES Module detection for default imports with relative paths or scoped packages and exporting of async functions.

        • b2b36cfe fix(core): fixes ES Module detection for default imports with relative paths or scoped packages (#2380) on 2021-08-10
        • fbf8caf5 fix(core): ESM detection when using export async function (#2425) on 2021-08-14
      • Fix listen calls receiving past events.

      • Fixes file drop events being swapped (file-drop-hover on drop and file-drop on hover).

        • c2b0fe1c fix(core): fix wrong file drop events (#2300) on 2021-07-31
      • Fixes app.listen_global not receiving events emitted in javascript.

        • a8c1de55 fix listen_global not listening to events with a window label (#2272) on 2021-07-23
      • Fixes minimum window height being used as maximum height.

        • e3f99165 fix(core) minHeight being used as maxHeight (#2247) on 2021-07-19
      • Fixes unlisten calls from JavaScript removing every registered event listener.

      • Use Url.join() when building webview URLs in WindowManager, to handle edge cases and leading/trailing slashes in paths and urls.

      • Fixes fs-all feature not requiring the base64 crate.

        • 9b32b939 fix(core): fs-all feature not including base64 crate, closes #2336 (#2368) on 2021-08-08
      • Update gtk and its related libraries to v0.14. This also remove requirements of clang as build dependency.

      • Use HeaderValue::from_bytes instead of HeaderValue::from_str and HeaderValue#to_bytes instead of HeaderValue#to_str to improve compatibility.

        • 1635798a feat(core): improve HeaderValue compatibility, closes #2162 (#2438) on 2021-08-15
      • Implement Debug on public API structs and enums.

        • fa9341ba feat(core): implement Debug on public API structs/enums, closes #2292 (#2387) on 2021-08-11
      • Adds Resumed and MainEventsCleared variants to the Event enum.

        • 6be3f433 feat(core): add Resumed and MainEventsCleared events, closes #2127 (#2439) on 2021-08-15
      • Panic when a dispatcher getter method (Window, GlobalShortcutHandle, ClipboardManager and MenuHandle APIs) is called on the main thread.

        • 50ffdc06 feat(core): panic when a dispatcher getter is used on the main thread (#2455) on 2021-08-16
      • Use percent_encoding::percent_decode on the asset custom protocol URL before reading the file.

        • 9acd8301 fix(core): percent decode asset protocol URL (#2427) on 2021-08-14
      • Keep original value on config > package > productName on Linux (previously converted to kebab-case).

        • 3f039cb8 fix: keep original productName for .desktop Name field, closes #2295 (#2384) on 2021-08-10
      • Inject the invoke key on regular <script></script> tags.

        • d0142e87 fix(core): invoke key injection on regular JS scripts, closes #2342 (#2344) on 2021-08-03
      • Remove salt-related APIs (no longer needed after the __TAURI_INVOKE_KEY__ implementation).

        • e2a0704c refactor(core): remove salt APIs (#2426) on 2021-08-14
      • Update minimum Rust version to 1.54.0.

      • Run the setup callback after preparing the system tray.

        • 1792c455 fix(core): run setup after preparing system tray (#2312) on 2021-07-28
      • Fixes a consistency issue on the order of tauri::process::Command emitted events.

        • 737da872 fix(core): random shell command output order, closes #2184 (#2376) on 2021-08-09
      • Force data directory even on non-local window.

        • 70a19414 fix(core): Force data_directory on Windows (#2288) on 2021-07-23
      • Allow creation of empty Window with create_tao_window() and management with send_tao_window_event() on the AppHandler.

        • 88080855 feat(window): Allow creation of Window without wry (#2321) on 2021-07-29
        • 15566cfd feat(core): add API to send wry window message to the event loop (#2339) on 2021-08-02
      • Make ClipboardManager and GlobalShortcutManager public as they are exposed in the AppHandle.

        • 6e0dbf63 fix(core): Expose ClipboardManager and GlobalShortcutManager (#2263) on 2021-08-03
      • Images you mark as template images should consist of only black and clear colors. You can use the alpha channel in the image to adjust the opacity of black content, however.

      • 426a6b49 feat(macOS): Implement tray icon template (#2322) on 2021-07-29

      • Add Event::Ready on the run() callback. Triggered once when the event loop is ready.

        • Do not run the updater with UAC task if server don't tell us. (Allow toggling server-side)
      • The updater expect a field named with_elevated_task with a boolean and will not run if the task is not installed first. (windows only)

      • c5761190 fix(updater): Run elevated task only if server tell us (#2357) on 2021-08-08

      • Add try_state API to the Manager trait.

        • 84a0e04c feat(core): try_state API on the Manager trait (#2341) on 2021-08-02

      [1.0.0-beta.5]

      • Allow preventing window close when the user requests it.
        • 8157a68a feat(core): allow listening to event loop events & prevent window close (#2131) on 2021-07-06
      • Add App#run method with callback argument (event loop event handler).
        • 8157a68a feat(core): allow listening to event loop events & prevent window close (#2131) on 2021-07-06
      • Fixes data-tauri-drag-region not firing its events.
        • 578610a2 fix(core): fix drag-region not sending its events correctly (#2196) on 2021-07-12
      • Fix macOS EXC_BAD_ACCESS panic when app is code-signed.
        • 456a94f6 fix(macOS): updater EXC_BAD_ACCESS (#2181) on 2021-07-12
      • Fixes SVG loading on custom protocol.
      • Expose gtk_window getter.
      • Inject invoke key on script tags with type="module".
        • f03eea9c feat(core): inject invoke key on <script type="module"> (#2120) on 2021-06-29
      • Fix macOS high CPU usage.
      • Export MenuHandle and MenuEvent types on tauri::window.
        • acb88929 fix(core): export MenuHandle and MenuEvent (#2148) on 2021-07-03
      • Use glib context for linux updater to prevent GTK panic.
        • 3389bd81 fix(linux): use glib main context for the updater on linux (#2222) on 2021-07-16
      • Bump wry 0.11 and fix focus integration to make it compatible with tao 0.4.
      • Params has been removed, along with all the associated types on it. Functions that previously accepted those associated types now accept strings instead. Type that used a generic parameter Params now use Runtime instead. If you use the wry feature, then types with a Runtime generic parameter should default to Wry, letting you omit the explicit type and let the compiler infer it instead.

      tauri:

      • See Params note
      • If you were using Params inside a function parameter or definition, all references to it have been replaced with a simple runtime that defaults to Wry. If you are not using a custom runtime, just remove Params from the definition of functions/items that previously took it. If you are using a custom runtime, you may need to pass the runtime type to these functions.
      • If you were using custom types for Params (uncommon and if you don't understand you probably were not using it), all methods that were previously taking the custom type now takes an Into<String> or a &str. The types were already required to be string-able, so just make sure to convert it into a string before passing it in if this breaking change affects you.

      tauri-macros:

      • (internal) Added private default_runtime proc macro to allow us to give item definitions a custom runtime only when the specified feature is enabled.

      tauri-runtime:

      • See Params note
      • Removed Params, MenuId, Tag, TagRef.
      • Added menu::{MenuHash, MenuId, MenuIdRef} as type aliases for the internal type that menu types now use.
        • All previous menu items that had a MenuId generic now use the underlying MenuId type without a generic.
      • Runtime, RuntimeHandle, and Dispatch have no more generic parameter on create_window(...) and instead use the Runtime type directly
      • Runtime::system_tray has no more MenuId generic and uses the string based SystemTray type directly.
      • (internal) CustomMenuItem::id_value() is now hashed on creation and exposed as the id field with type MenuHash.

      tauri-runtime-wry:

      • See Params note
      • update menu and runtime related types to the ones changed in tauri-runtime.

      tauri-utils:

      • Assets::get signature has changed to take a &AssetKey instead of impl Into<AssetKey> to become trait object safe.
      • fd8fab50 refactor(core): remove Params and replace with strings (#2191) on 2021-07-15

      [1.0.0-beta.4]

      • Double clicking a data-tauri-drag-region element will toggle the window maximized state.
        • 8b7ac1ad feat: double-click tauri-drag-region to maximize, closes #1839 (#2106) on 2021-06-29
      • Fixes asset protocol crashing application.
        • 99d96084 fix(core): custom protocol regression (#2115) on 2021-06-28

      [1.0.0-beta.3]

      • Fixes api::process::Command events not firing consistently.
        • 8c13344f fix(core): command events not firing consistently (#2082) on 2021-06-27
      • Detect ESM scripts and inject the invoke key directly instead of using an IIFE.
        • 7765c7fa fix(core): invoke key injection on ES module, improve performance (#2094) on 2021-06-27
      • Improve invoke key code injection performance time rewriting code at compile time.
        • 7765c7fa fix(core): invoke key injection on ES module, improve performance (#2094) on 2021-06-27
      • Enforce uniqueness of window label.
      • Window is now Send + Sync on Windows.
        • fe32afcc fix(core): Window must be Send + Sync on Windows, closes #2078 (#2093) on 2021-06-27

      [1.0.0-beta.2]

      • Remove anonymous lifetimes on examples.

        • c1f8e113 chore: remove unnecessary anonymous lifetimes (#1829) on 2021-05-14
      • Moves shell, dialog::FileDialogBuilder and process::Command APIs behind their allowlist feature flags.

        • aab3e1f1 refactor(core): move api modules behind allowlist feature flags (#1864) on 2021-05-19
      • Adds create_window API to the AppHandle struct.

        • 95d518af feat(core): expose AppHandle, add create_window API (#1855) on 2021-05-18
      • Adds a handle function to the App struct, which returns a Send handle to the app instance.

        • 95d518af feat(core): expose AppHandle, add create_window API (#1855) on 2021-05-18
      • Use attohttpc on the HTTP API by default for bundle size optimization. reqwest is implemented behind the reqwest-client feature flag.

        • 17c7c439 refactor(core): use attohttpc by default (#1861) on 2021-05-19
      • Kill child processes spawned with tauri::api::process::Command on tauri::App drop. Can be skipped with tauri::Builder#skip_cleanup_on_drop.

        • 4bdc4066 feat(core): kill sidecar child processes on App drop, closes #1896 (#1932) on 2021-06-01
      • Adds clipboard APIs (write and read text).

        • 285bf64b feat(core): add clipboard writeText and readText APIs (#2035) on 2021-06-21
        • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
      • Allow accessing an AppHandle instance on a command through dependency injection.

        • 59784c7e feat(core): implement CommandArg for AppHandle (#2037) on 2021-06-21
      • Fixes child processes messages not arriving until the subprocess is terminated.

      • Adds config and package_info getters to the App and AppHandle structs.

        • 70fc87a7 feat(core): add config and package_info getters on App and AppHandle (#2016) on 2021-06-20
      • Expose mutable getters for the rest of the public Context getters.

      • pub fn assets_mut(&mut self) -> &mut Arc<A>

      • pub fn default_window_icon_mut(&mut self) -> &mut Option<Vec<u8>>

      • pub fn system_tray_icon_mut(&mut self) -> &mut Option<Icon>

      • pub fn package_info_mut(&mut self) -> &mut tauri::api::PackageInfo

      • 754c2e76 feat(core): finish mutable getters for Context (#1814) on 2021-05-13

      • Adds request_user_attention API to the Window struct.

      • Adds show, hide, is_visible and toggle APIs to the MenuHandle.

        • 954460c5 feat(core): MenuHandle show, hide, is_visible and toggle APIs (#1958) on 2021-06-15
      • Allow dev_path and dist_dir to be an array of root files and directories to embed.

        • 6ec54c53 feat(core): allow dev_path, dist_dir as array of paths, fixes #1897 (#1926) on 2021-05-31
      • Validate tauri.conf.json > build > devPath and tauri.conf.json > build > distDir values.

        • e97846aa feat(core): validate devPath and distDir values (#1848) on 2021-05-17
      • Set the Tauri window as parent for dialogs.

        • abf78c58 fix(core): set parent window handle on dialogs, closes #1876 (#1889) on 2021-05-21
      • Fallback to index.html on asset loading so router with history mode works.

      • Fixes custom protocol asset loader not decoding the percent-encoded path.

        • c021968e fix(core): asset loading not decoding percent-encoded path, closes #1879 (#1938) on 2021-06-01
      • As some frameworks automatically add "true" as the value of the attribute, we need to check if it exists instead.

      • Fixes build without the dialog Cargo features.

        • 49fb3b72 fix(core): build without dialog Cargo features (#1973) on 2021-06-09
      • Allow disabling the webview file drop handler (required to use drag and drop on the frontend on Windows) using the tauri.conf.json > tauri > windows > fileDropEnabled flag or the WebviewAttributes#disable_file_drop_handler method.

        • 9cd10df4 feat(core): allow disabling file drop handler, closes #2014 (#2030) on 2021-06-21
      • Fixes the HTTP API binary response serialization.

        • 47f75584 fix(core): resolve HTTP API on non-ok status code, fix binary response, closes #2046 (#2053) on 2021-06-23
      • The http APIs now resolve the returned promise when the API call finishes with an error status code.

        • 47f75584 fix(core): resolve HTTP API on non-ok status code, fix binary response, closes #2046 (#2053) on 2021-06-23
      • Run the notification.show() method on a dedicated async task to prevent a panic on Windows.

        • 86d0aaa0 fix(core): notification panic on Windows, closes #917 (#2011) on 2021-06-19
      • Fixes HTTP API headers being overwritten when using the reqwest client.

        • 1006c1cf fix(core): HTTP headers being overwritten by reqwest, closes #2032 (#2036) on 2021-06-21
      • Remove closed window from the window.__TAURI__.__windows array, used by the window.getAll API from @tauri-apps/api.

        • ebaa33cb fix(core): remove closed window from window.__TAURI__.__windows (#2057) on 2021-06-23
      • Panic on window getters usage on the main thread when the event loop is not running and document it.

      • Adds focus API to the WindowBuilder.

        • 5f351622 feat(core): add focus API to the WindowBuilder and WindowOptions, #1737 on 2021-05-30
        • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
      • Breaking change: The global shortcut API is now managed by tao so it cannot be accessed globally, the manager is now exposed on the App and AppHandle structs.

        • 3280c4aa refactor(core): global shortcut is now provided by tao (#2031) on 2021-06-21
      • Hide phf crate export (not public API).

      • (internal): allow wry dependency to be optional again while keeping default args. code that wishes to expose a struct with a default arg should use the crate::manager::default_args! macro to declare the struct, so that it can automatically feature-gate DefaultArgs behind using wry.

        • 3d8dcbbf fix(core): allow wry to be an optional dep again (fix #1841) (#1854) on 2021-05-17
      • Adds is_decorated getter on Window.

        • f58a2114 feat(core): add is_decorated Window getter on 2021-05-30
        • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
      • Adds is_resizable getter on Window.

        • 1e8af280 feat(core): add is_resizable Window getter on 2021-05-30
        • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
      • Adds is_visible getter on Window.

        • 36506c96 feat(core): add is_visible API on 2021-05-30
        • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
      • Read tauri.conf.json > tauri > bundle > icons and use the first .png icon as window icon on Linux. Defaults to icon/icon.png if a PNG icon is not configured.

      • Adds accelerator method to the CustomMenuItem struct to define a keyboard shortcut for the menu item.

        • 034c2601 feat(core): add accelerator method to CustomMenuItem (#2043) on 2021-06-22
      • Breaking change: The menu API was not designed to have all the new features: submenus, item updates, disabled state... so we broke it before going to stable.

        • f7e9fe8f refactor(core): new system tray and window menu APIs, closes #1898 (#1944) on 2021-06-04
      • Adds a PathResolver struct to simplify the usage of the tauri::api::path::{app_dir, resource_dir} APIs, accessible through the App and AppHandle path_resolver methods.

        • 5ca462f6 feat(core): add path resolver API to the App and AppHandle structs (#2015) on 2021-06-19
      • Removes image dependency. For now only .ico icons on Windows are supported, and we'll implement other types on demand to optimize bundle size.

        • 1be37a3f refactor(core): remove image dependency (#1859) on 2021-05-18
      • Remove window object from the Manager internal HashMap on close. This fixes the behavior of using [App|AppHandle|Window]#get_window after the window is closed (now correctly returns None).

        • 08c161c5 fix(core): remove window from HashMap on close (#2024) on 2021-06-20
      • Improve RPC security by requiring a numeric code to invoke commands. The codes are generated by the Rust side and injected into the app's code using a closure, so external scripts can't access the backend. This change doesn't protect withGlobalTauri (window.__TAURI__) usage.

      • Adds run_iteration API to the App and return the app instance on the build method of the Builder. The run_iteration method runs the window event loop step by step, allowing Tauri to be run along other applications.

        • 8c0d0739 feat(core): add run_iteration, parent_window and owner_window APIs, closes #1872 (#1874) on 2021-05-21
      • The run_on_main_thread API now uses WRY's UserEvent, so it wakes the event loop.

        • 9bf82f0d fix(core): run_on_main_thread now wakes the event loop (#1949) on 2021-06-04
      • Adds set_focus API on Window.

        • bb6992f8 feat(core): add set_focus window API, fixes #1737 on 2021-05-30
        • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
      • Adds set_skip_taskbar API on Window.

        • e06aa277 feat(core): add set_skip_taskbar API on 2021-05-30
        • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
      • Adds skip_taskbar API to the WindowBuilder.

        • 5525b03a feat(core): add skip_taskbar API to the WindowBuilder/WindowOptions on 2021-05-30
        • dee71ad5 fix(workflows): update docs workflow syntax (#2054) on 2021-06-23
      • Breaking change: The system_tray and on_system_tray_event APIs were not designed to have all the new features: submenus, item updates, click events, positioning... so we broke it before going to stable.

        • f7e9fe8f refactor(core): new system tray and window menu APIs, closes #1898 (#1944) on 2021-06-04
      • Fix loading url containing URI fragment

      • Adds Window#center and WindowBuilder#center APIs.

      • Adds window native handle getter (HWND on Windows).

        • abf78c58 fix(core): set parent window handle on dialogs, closes #1876 (#1889) on 2021-05-21

      [1.0.0-beta.1]

      • Adds a mutable config getter on the Context struct.
        • 144d6b9 feat(core): add mutable config getter on the Context struct (#1803) on 2021-05-12

      [1.0.0-beta.0]

      • Breaking: api::path::resolve_path() and api::path::app_dir() now takes the config as first argument and the PackageInfo as second argument. Breaking: api::path::app_dir() now resolves to ${configDir}/${config.tauri.bundle.identifier}.

        • 428d50a refactor(core): use bundle identifier on app dir, closes #1693 (#1703) on 2021-05-04
        • 7bb7dda refactor(core): resolve resource_dir using the package info (#1762) on 2021-05-10
      • Adds manage API to the Builder struct, which manages app state.

      • Breaking: The assets field on the tauri::Context struct is now a Arc<impl Assets>.

        • 5110c70 feat(core): allow users to access the Assets instance (#1691) on 2021-05-03
      • Only commands with a async fn are executed on a separate task. #[command] fn command_name runs on the main thread.

        • bb8dafb feat(core): #[command] return with autoref specialization workaround fix #1672 (#1734) on 2021-05-09
      • Renamed the command API module to process.

        • b0bb796 refactor: rename command mod to process, move restart_application (#1667) on 2021-04-30
      • Adds options argument to the shell command API (env and cwd configuration).

        • 721e98f feat(core): add env, cwd to the command API, closes #1634 (#1635) on 2021-04-28
      • Improves support for commands returning Result.

        • bb8dafb feat(core): #[command] return with autoref specialization workaround fix #1672 (#1734) on 2021-05-09
      • Adds status and output APIs to the tauri::api::process::Command struct.

        • d92fde7 feat(core): add output and status APIs to the Command struct (#1668) on 2021-05-02
      • The create_window API callback now takes two arguments: the WindowBuilder and the WebviewAttributes and must return a tuple containing both values.

      • Reintroduce csp injection, configured on tauri.conf.json > tauri > security > csp.

        • 6132f3f feat(core): reintroduce CSP injection (#1704) on 2021-05-04
      • Adds the default types used with Builder::default() to items that expose Params in their type. This allows you to skip specifying a generic parameter to types like Window<P> if you use the default type.

        • 27a7810 feat(core): add default Args to all types exposing Params (#1777) on 2021-05-11
      • Change draggable region element detection from drag-region class to data-tauri-drag-region attribute.

        • 4f1e87f refactor(core): change drag element detection to data attr, fixes #1656 (#1659) on 2021-04-29
      • Emit tauri://resize, tauri://move, tauri://close-requested, tauri://destroyed, tauri://focus, tauri://blur and tauri://scale-change events to the window.

      • The event emit function payload type is now impl Serialize instead of Option<impl Serialize>.

        • 4687538 refactor(core): drop Option payload type on event::emit (#1760) on 2021-05-09
      • Update tauri-hotkey to v0.1.2, fixing a compilation issue on 32-bit platforms.

        • 92a01a7 chore(deps): bump tauri-hotkey to 0.1.2 (#1701) on 2021-05-04
      • Implemented window menus APIs.

      • Added the `#[non_exhaustive] attribute where appropriate.

        • e087f0f feat: add #[non_exhaustive] attribute (#1725) on 2021-05-05
      • Notification.requestPermission() now returns "denied" when not allowlisted. IsNotificationPermissionGranted returns false when not allowlisted.

        • 8941790 fix(core): notification permission check when !allowlisted, closes #1666 (#1677) on 2021-05-02
      • Refactored the Plugin trait initialize and extend_api signatures. initialize now takes the App as first argument, and extend_api takes an Invoke instead of InvokeMessage. This adds support to managed state on plugins.

        • 8b6f3de feat(core): add state management, closes #1655 (#1665) on 2021-05-02
        • 1d6f418 refactor(core): merge invoke items into single struct, allow ? (#1683) on 2021-05-02
      • window.print() now works on all platforms.

        • 56e74cc feat(core): ensure window.print()works on macOS (#1738) on 2021-05-07
      • Breaking: Context fields are now private, and is expected to be created through Context::new(...). All fields previously available through Context are now public methods.

        • 5542359 refactor(core): Context fields now private, Icon used on all platforms (#1774) on 2021-05-11
      • Settings is now serialized using bincode.

        • 455c550 refactor(core): Settings serialization using bincode (#1758) on 2021-05-09
      • The window management API was refactored: removed setX, setY, setWidth, setHeight APIs, renamed resize to setSize and the size and position APIs now allow defining both logical and physical values.

        • 6bfac86 refactor(core): add window getters, physical & logical sizes/positions (#1723) on 2021-05-05
      • Removed the tcp module from tauri::api.

        • e087f0f feat: add #[non_exhaustive] attribute (#1725) on 2021-05-05
      • Removes the with_window attribute on the command macro. Tauri now infers it using the CommandArg trait.

        • 8b6f3de feat(core): add state management, closes #1655 (#1665) on 2021-05-02
        • 1d6f418 refactor(core): merge invoke items into single struct, allow ? (#1683) on 2021-05-02
      • Move restart_application API from app module to process module.

        • b0bb796 refactor: rename command mod to process, move restart_application (#1667) on 2021-04-30
      • tauri-runtime crate initial release.

        • 665ec1d refactor: move runtime to tauri-runtime crate (#1751) on 2021-05-09
        • 45a7a11 feat(core): add tauri-wry crate (#1756) on 2021-05-09
      • The setup Error type must be Send.

        • e087f0f feat: add #[non_exhaustive] attribute (#1725) on 2021-05-05
      • Simplify usage of app event and window label types. The following functions now accept references the Tag can be borrowed as. This means an &str can now be accepted for functions like Window::emit. This is a breaking change for the following items, which now need to take a reference. Additionally, type inference for &"event".into() will no longer work, but &"event".to_string() will. The solution for this is to now just pass "event" because Borrow<str> is implemented for the default event type String.

      • Breaking: Window::emit now accepts Borrow for the event.

      • Breaking: Window::emit_others now accepts Borrow for the event

      • Breaking: Window::trigger now accepts Borrow for the event.

      • Breaking: Manager::emit_all now accepts Borrow for the event.

      • Breaking: Manager::emit_to now accepts Borrow for both the event and window label.

      • Breaking: Manager::trigger_global now accepts Borrow for the event.

      • Breaking: Manager::get_window now accepts Borrow for the window label.

      • (internal): trait tauri::runtime::tag::TagRef helper for accepting tag references. Any time you want to accept a tag reference, that trait will handle requiring the reference to have all the necessary bounds, and generate errors when the exposed function doesn't set a bound like P::Event: Borrow<E>.

      • 181e132 refactor(core): simplify usage of app event and window label types (#1623) on 2021-04-27

      • a755d23 refactor(core): more bounds for better errors from #1623 (#1632) on 2021-04-27

      • tauri-runtime-wry initial release.

        • 45a7a11 feat(core): add tauri-wry crate (#1756) on 2021-05-09
      • Adds system tray support.

      • Rename Attributes to WindowBuilder.

      • The Window#create_window API now has the same signature as App#create_window.

        • dbd9b07 refactor(core): create_window API signature on the Window struct (#1746) on 2021-05-08
      • Adds on_window_event API to the Window struct.

      • Adds window getters.

        • 6bfac86 refactor(core): add window getters, physical & logical sizes/positions (#1723) on 2021-05-05
      • Update wry to v0.9.

      [1.0.0-beta-rc.4]

      • Update tauri-macros and tauri-utils to 1.0.0-beta-rc.1.

      [1.0.0-beta-rc.3]

      • tauri::error::CreateWebview now has the error string message attached.
        • 7471e34 feat(core): add error message on error::CreateWebview (#1602) on 2021-04-23
      • If the dialog defaultPath is a file, use it as starting file path.
        • aa7e273 feat: use rfd::FileDialog#set_file_name if default_path is a file (#1598) on 2021-04-23
      • Validate dialog option defaultPath - it must exists.
        • cfa74eb feat(core): validate dialog default_path (it must exist) (#1599) on 2021-04-23
      • Expose async_runtime module.
        • d3fdeb4 feat(core): expose async_runtime module (#1576) on 2021-04-21
      • Expose PageLoadPayload struct.
        • 5e65b76 fix(core): expose PageLoadPayload struct (#1590) on 2021-04-22
      • Fixes the Message command name value on plugin invoke handler.
        • 422dd5e fix(core): command name on plugin invoke handler (#1577) on 2021-04-21
      • Allow window.__TAURI__.invoke to be moved to another variable.
        • be65f04 fix(core): make window.TAURI.invoke context free, fixes #1547 (#1565) on 2021-04-21
      • Make sure custom protocol is treated as secure content on macOS.
        • 5909c1e Make sure custom protocol is handled as secure context on macOS (#1551) on 2021-04-22
      • Fixes macOS shortcut modifiers keycodes.
      • Adds APIs to determine global and webview-specific URI scheme handlers.
        • 938fb62 feat(core): expose custom protocol handler APIs (#1553) on 2021-04-21
        • a868cb7 refactor(core): clear uri_scheme_protocol registration function names (#1617) on 2021-04-25
      • The package info APIs now checks the package object on tauri.conf.json.
        • 8fd1baf fix(core): pull package info from tauri.conf.json if set (#1581) on 2021-04-22
      • Change plugin trait initialization return type to std::result::Result<(), Box<dyn std::error::Error>>.
        • 508eddc refactor(core): plugin initialization return value (#1575) on 2021-04-21
      • Fixes sidecar Command API.
        • 99307d0 fix(core): sidecar command path (#1584) on 2021-04-22
      • Set LocalStorage and IndexedDB files path on Linux to $HOME/.local/${bundleIdentifier}.
        • 5f033db feat(core): use bundle identifier on user data path (#1580) on 2021-04-22
      • Use bundle identifier instead of Tauri for user data path on Windows.
        • 5f033db feat(core): use bundle identifier on user data path (#1580) on 2021-04-22

      [1.0.0-beta-rc.2]

      • Prevent "once" events from being able to be called multiple times.

      • Window::trigger(/*...*/) is now properly pub instead of pub(crate).

      • Manager::once_global(/*...*/) now returns an EventHandler.

      • Window::once(/*...*/) now returns an EventHandler.

      • (internal) event::Listeners::trigger(/*...*/) now handles removing "once" events.

      • ece243d don't remove once listener on new thread (#1506) on 2021-04-14

      • Window and global events can now be nested inside event handlers. They will run as soon as the event handler closure is finished in the order they were called. Previously, calling events inside an event handler would produce a deadlock.

      Note: The order that event handlers are called when triggered is still non-deterministic.

      • e447b8e allow event listeners to be nested (#1513) on 2021-04-15

      [1.0.0-beta-rc.1]

      • Missing the files property in the package.json which mean that the dist directory was not published and used.
        • Bumped due to a bump in api.
        • b2569a7 fix(js-api): dist (#1498) on 2021-04-15

      [1.0.0-beta-rc.0]

      • internal refactoring of Params to allow for easier usage without a private trait with only 1 implementor. ParamsPrivate -> ParamsBase ManagerPrivate -> ManagerBase (new) Args, crate only. Now implements Params/ParamsBase. App and Window use WindowManager directly
      • ec27ca8 refactor(tauri): remove private params trait methods (#1484) on 2021-04-14
      • Updated wry, fixing an issue with the draggable region.
      • Now Tauri commands always returns Promise.
        • ea73325 refactor(core): all API are now promise based (#1239) on 2021-02-16
      • Rename macOS bundle settings from osx to macOS.
        • 080f639 refactor(bundler): specific settings on dedicated structs, update README (#1380) on 2021-03-25
      • The shell process spawning API was rewritten and now includes stream access.
        • 3713066 refactor(core): rewrite shell execute API, closes #1229 (#1408) on 2021-03-31
      • The Tauri files are now read on the app space instead of the tauri create. Also, the AppBuilder build function now returns a Result.
        • e02c941 refactor(tauri): support for building without environmental variables (#850) on 2021-02-09
        • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
      • Tauri now uses explicit Error variants with thiserror instead of relying on anyhow.
        • 156a0ad refactor(tauri): use explicit error types instead of anyhow (#1209) on 2021-02-10
      • Align HTTP API types with the documentation.
        • 2fc39fc fix(api/http): correct types (#1360) on 2021-03-17
        • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
      • Replace \ with \\ in css assets that are lazy loaded. Since these are injected in a template literal, backslashes must be escaped. Backslashes are sometimes used for octal sequences in CSS.
        • 4491c70 fix(tauri/asset): escape octal sequences in css (#1166) on 2021-01-30
      • Replaces the embedded-server mode with Wry's custom protocol feature. This allows assets to be transferred to the webview directly, instead of through a localhost server.
        • 0c691f4 feat(core): Use Wry custom protocol instead of embedded server (#1296) on 2021-02-25
      • The message and ask dialogs now use tinyfiledialogs-rs instead of tauri-dialog-rs.
        • 6eee355 refactor(core): use tinyfiledialogs-rs for message/confirmation dialogs (#1255) on 2021-02-17
        • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
      • Refactor the event callback payload and return an unlisten function on the listen API.
        • b670ec5 refactor(core): add unlisten, once APIs to the event system (#1359) on 2021-03-16
        • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
      • Adds unlisten and once APIs on the Rust event system.
        • b670ec5 refactor(core): add unlisten, once APIs to the event system (#1359) on 2021-03-16
      • The tauri::event module has been moved to a Webview manager API.
        • 07208df feat(core): add mult-window support (#1217) on 2021-02-11
      • The file dialog API now uses rfd. The filter option is now an array of { name: string, extensions: string[] }.
        • 2326bcd refactor(core): use nfd for file dialogs, closes #1251 (#1257) on 2021-02-18
        • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
      • Tauri now emits events on file drops on the webview window.
        • 2db901e feat(core): add file drop handler (#1352) on 2021-03-12
      • Fixes resource_dir resolution on AppImage.
      • Fixed missing 'App' variant & string promise instead of void promise.
      • The HTTP API was improved with client caching and better payload and response types.
        • a7bc472 refactor(core): improve HTTP API, closes #1098 (#1237) on 2021-02-15
        • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
      • Added new JavaScript API to extract name, version, tauri version from the running application. We exposed relaunch and exit as well to control your application state.
        • e511d39 feat(api): Expose application metadata and functions to JS api - fix #1387 (#1445) on 2021-04-08
        • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
      • The event listener once kind was moved to a dedicated function.
        • 372036c refactor(api): move event's once to its own function (#1276) on 2021-02-23
        • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
      • Use JSON.parse(String.raw`{arg}`) for communicating serialized JSON objects and arrays < 1 GB to the Webview from Rust.
      • https://github.com/GoogleChromeLabs/json-parse-benchmark

        • eeb2030 Use JSON.parse instead of literal JS for callback formatting (#1370) on 2021-04-07
        • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
        • Update all code files to have our license header.
          • bf82136 feat(license): SPDX Headers (#1449) on 2021-04-11
          • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
          • aea6145 refactor(repo): add /tooling folder (#1457) on 2021-04-12
        • Added support to multiple windows.
          • 07208df feat(core): add mult-window support (#1217) on 2021-02-11
        • Adds productName and version configs on tauri.conf.json > package.
          • 5b3d9b2 feat(config): allow setting product name and version on tauri.conf.json (#1358) on 2021-03-22
          • aea6145 refactor(repo): add /tooling folder (#1457) on 2021-04-12
        • Plugins are now configurable through a tauri.conf.json > "plugins" > $pluginName object.
          • 2058cc3 feat(tauri): add plugin initialize (with config) API, run in parallel (#1194) on 2021-02-10
        • Renamed the Plugin trait init_script to initialization_script.
          • 5c5d8f8 refactor(tauri): rename init_script to initialization_script (#1200) on 2021-02-10
        • The plugin instance is now mutable and must be Send.
          • fb607ee refactor(tauri): plugin trait with mutable references (#1197) on 2021-02-10
          • 1318ffb refactor(core): remove async from app hooks, add InvokeMessage type (#1392) on 2021-03-26
        • Fixes the event system usage on the plugin ready hook.
          • 23132ac fix(tauri): run plugin::ready without webview.dispatch (#1164) on 2021-01-29
        • The allowlist configuration now has one object per module.
          • e0be59e refactor(core): split allowlist configuration per module (#1263) on 2021-02-20
        • The Tauri script is now injected with the webview init API, so it is available after page changes.
          • 4412b7c refactor(tauri): inject script with webview init API (#1186) on 2021-02-05
          • 8bdd894 refactor(core): move bundle script to /tauri crate (#1377) on 2021-03-23
        • Removed the no-server mode, the inliner, the dev server proxy and the loadAsset API.
          • 84d7cda refactor(core): remove no-server and its APIs (#1215) on 2021-02-11
          • aea6145 refactor(repo): add /tooling folder (#1457) on 2021-04-12
        • Adds a global shortcut API.
          • 855effa feat(core): globalShortcut API (#1232) on 2021-02-14
          • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
        • Added async support to the Tauri Rust core on commit #a169b67.
          • 2bf55f8 chore: add changefile on 2021-02-03
          • e02c941 refactor(tauri): support for building without environmental variables (#850) on 2021-02-09
        • Alpha version of tauri-updater. Please refer to the README for more details.
          • 6d70c8e feat(updater): Alpha version (#643) on 2021-04-05
          • a6def70 Refactor(tauri): move tauri-api and tauri-updater to tauri (#1455) on 2021-04-11
          • aea6145 refactor(repo): add /tooling folder (#1457) on 2021-04-12
        • The Tauri integration with Webview was refactored to use traits, which allows custom implementations by developers and simplifies changes on the webview implementation.
          • b9ce7b9 refactor(tauri): Webview traits (#1183) on 2021-02-05
        • Added window management and window creation APIs.
          • a3d6dff feat(core): window API (#1225) on 2021-02-13
          • 641374b feat(core): window creation at runtime (#1249) on 2021-02-17
        • Use WRY as Webview interface, thanks to @wusyong.
          • 99ecf7b feat(tauri): use WRY as webview engine (#1190) on 2021-02-08

        [0.11.1]

        • Update webview-official dependency which fix compatibility on macOS.
          • 692312a chore(deps) Update webview-official (#1152) on 2021-01-24

        [0.11.0]

        • Match writeBinaryFile command name between js and rust
          • 486bd92 Fix: writeBinaryFile to call the correct command (fix #1133) (#1136) on 2021-01-06

        [0.10.0]

        • Adds missing APIs features from allowlist to the tauri crate's manifest file.
        • Adds a path resolution API (e.g. getting the download directory or resolving a path to the home directory).
        • Update minimum Rust version to 1.42.0 due to a dependency update.
        • Minimum Rust version updated to 1.47.0. Run $ rustup update to update to the latest version.
          • b4544b6 chore(deps) Update Tauri API (#1072) on 2020-11-07

        [0.9.2]

        [0.9.1]

        • Adjust payload formatting to handle multibyte characters in front-end message payloads. - df70ca5 Fix #912 multibyte character breaks message (#914) on 2020-08-01

        [0.9.0]

        • Make sure CSS content loaded with the loadAsset API is inside a template string and not injected raw.
          • e3e2e39 fix(tauri) ensure css content is loaded inside a string (#884) on 2020-07-22
          • b96b1fb inject css with template string to allow for line breaks (#894) on 2020-07-25
        • Pin the tauri-api dependency on the tauri crate so updates doesn't crash the build.
          • ad717c6 chore(tauri) pin tauri-api dep version (#872) on 2020-07-21
        • Fixes the Webview initialization on Windows.
          • 4abd12c fix(tauri) webview initialization on windows, fixes #879 (#885) on 2020-07-23

        [0.8.0]

        • Use native dialog on window.alert and window.confirm. Since every communication with the webview is asynchronous, the window.confirm returns a Promise resolving to a boolean value. - 0245833 feat(tauri) make window.alert and window.confirm available, fix #848 (#854) on 2020-07-18 - dac0ae9 chore(changes) add tauri-api to JS dialogs changefile on 2020-07-19
        • The notification's body is now optional, closes #793.
          • dac1db3 fix(tauri) notification body optional, requestPermission() regression, closes #793 (#844) on 2020-07-16
        • Fixes a regression on the storage of requestPermission response. ß - dac1db3 fix(tauri) notification body optional, requestPermission() regression, closes #793 (#844) on 2020-07-16
        • Plugin system added. You can hook into the webview lifecycle (created, ready) and extend the API adding logic to the invoke_handler by implementing the tauri::plugin::Plugin trait.
          • 78afee9 feat(tauri) add plugin system for rust (#494) on 2020-07-12
        • Renaming whitelist to allowlist (see #645).
          • a6bb3b5 refactor(tauri) rename whitelist to allowlist, ref #645 (#858) on 2020-07-19
        • Moving the webview implementation to webview, with the official Rust binding. This is a breaking change. IE support has been dropped, so the edge object on tauri.conf.json > tauri no longer exists and you need to remove it. webview.handle() has been replaced with webview.as_mut(). - cd5b401 feature: import official webview rust binding (#846) on 2020-07-18

        [0.7.5]

        • Fixes Edge blank screen on Windows when running tauri dev (Tauri crashing window due to Edge reloading app because of missing Content-Type header).
          • Bumped due to a bump in tauri-api.
          • fedee83 fix(tauri.js) windows Edge blank screen on tauri dev (#808) on 2020-07-11

        [0.7.4]

        • Ignoring non UTF-8 characters on the loopback command output.
          • f340b29 fix(tauri) addition to the previous commit on 2020-07-10

        [0.7.3]

        • Properly run the loopback command on Windows.
        • Properly ignore the ${distDir}/index.html asset from the asset embedding. Previously every asset with name matching /(.+)index.html$/g were ignored.

        [0.7.2]

        Bumped due to dependency.

        [0.7.1]

        • Fixes the assets embedding into the binary.

        [0.7.0]

        • The execute_promise and execute_promise_sync helpers now accepts any tauri::Result where T: impl Serialize. This means that you do not need to serialize your response manually or deal with String quotes anymore. As part of this refactor, the event::emit function also supports impl Serialize instead of String.
        • [0.6.2]

          • Fixes the Windows build with the latest Windows SDK.

          [0.6.1] - (Not Published)

          [0.6.0]

          • Adds a command line interface option to tauri apps, configurable under tauri.conf.json > tauri > cli.
          • Fixes no-server mode not running on another machine due to fs::read_to_string usage instead of the include_str macro. Build no longer fails when compiling without environment variables, now the app will show an error.
          • Adds desktop notifications API.
          • Properly reflect tauri.conf.json changes on app when running tauri dev.