* refactor(http)!: remove deprecated macos-system-configuration feature
Use `system-proxy` (enabled by default) instead.
* chore(upload): enable reqwest's system-proxy feature instead of the deprecated alias
---------
Co-authored-by: Lucas Nogueira <lucas@crabnebula.dev>
* refactor(http)!: always enforce the scope on redirects
Removes the `scopeRedirects` option (and the `Config` struct with it) that
was added as an opt-in in 2.7.0. Every hop of a redirect chain is now
checked against the URL scope, so a server on an allowed origin can no
longer redirect the request to a URL the scope denies.
`tauri_plugin_http::init()` returns `TauriPlugin<R>` again.
* chore(http): compile without warnings when the cookies feature is disabled
Checks the URL scope on every hop of a redirect chain instead of only on the URL requested by the frontend.
Without it, a server on an allowed origin can redirect the request to any other origin - including `localhost` services, internal hosts and cloud metadata endpoints - and the plugin follows it, returning the response to the webview.
* enhance(http): persist cookies on disk
closestauri-apps/tauri#11518
* clippy
* inline reqwest_cookie_store to fix clippy
* clippy
* Update .changes/persist-cookies.md
* Update plugins/http/src/reqwest_cookie_store.rs
* update example
* fallback to empty store if failed to load
* fix example
* persist cookies immediately
* clone
* lint
* .cookies filename
* prevent race condition
---------
Co-authored-by: Lucas Nogueira <lucas@tauri.app>