* feat:Add opt‑in navigation handler for external URLs (#5531)
* add navigation handler config option
code from https://github.com/DioxusLabs/dioxus/pull/5231
* Re-order branches
The branches should be reorder so that the branch that checks for
the index and assets is always taken first. Otherwise, they will
fail to load for users who forget to allow them in their custom
handlers, which will be a crappy experience and hard to debug.
* remove return
* Change behavior when handler not set
---------
Co-authored-by: not a cow <agielow@proton.me>
* fix: allow navigations but disallow external nav
---------
Co-authored-by: Martin Martinez Rivera <mrtnz.rvr@gmail.com>
Co-authored-by: not a cow <agielow@proton.me>
* it works!
* fix wasm hotpatch error
* bump wasmopt
* rename wasmopt flag
* rename ldd_keep_exports
* add build profiling
* undo bundle ignore
* some cleanups
* more cleanups
* wip: hoist up telemetry to builder
* fix compile
* wip: flamegraph rewrite
* clean up flamegraph impl
* cleanup profiling engine
* add comment on spans obj
* cleanup more phases
* more cleanup
* small cleanups
* bit more cleanups
* cleanup phases
* sign with tokio, not std proc
* split out the specific platform helpers
* cleanup a bit
* more cleanups
* more cleanups
* more cleanups
* more cleanups
* pull out fingerprint logic
* wip... I think I have a slightly better approach. saving checkpoint
* hm I think it's better now?
* fix: also seems to work not in workspace mode juuust yet
* okay yay almost there
* clooose but not there yet
* fix: manually export __wasm_apply_data_relocs since got relocations weren't firing
WASM workspace hotpatching: export __wasm_apply_global_relocs to fix call_indirect type mismatch
When workspace crates are recompiled with -Crelocation-model=pic for hotpatching, wasm-ld generates GOT.func.internal globals that hold element-segment-relative offsets (e.g., MetricCardProps::memoize = 31). These need __table_base added at runtime by __wasm_apply_global_relocs to become absolute table indices.
wasm-ld generates __wasm_apply_global_relocs but treats it as an internal synthetic function -- neither --export nor --export-if-defined will export it. Without the export, the runtime's call silently failed (the old code used unchecked_into on undefined), leaving the globals unrelocated. Function pointers then pointed to index 31 in the original module's table (some unrelated function) instead of table_base + 31 (the patched function), causing call_indirect to a signature that does not match.
Three changes:
patch.rs: After walrus processing, find __wasm_apply_global_relocs by name and add it as an export before emitting the patched wasm.
lib.rs: Replace unchecked_into with dyn_into for calling relocation functions, so missing exports are handled gracefully instead of silently swallowed.
link.rs: Remove the ineffective --export-if-defined flags that were added during debugging.
* cleanup
* fix scope dir
* change up naming a bit
* more tidying up
* more cleanups
* ignore early return
* clean er up
* more comprehensive cache bustign
* bust fingerprints of dag
* move bust_fingerprint back to request.rs
* add better rustdoc
* more idiomatic
* more cleanups
* fix panic, typos
* more lints
* only delete workspace prints in fat mod
* clippy
- inline mac, windows, linux bundling in the cli
- remove tauri bundle from our dep tree
- trim down the rpm crate for fewer dependencies in tree
- migrate from blacksmith to warpbuild
- move off swc and instead use esbuild via tool
- use dev drives in windows CI
- use fork of nix action for faster caching
- test bundling in CI
- fix asset handling in linux
- add default APPDATA location for webview2 installs for dioxus apps on windows
* Refactor cross-tls-crate-dylib configuration and update test output
- Commented out the crate-type configuration in Cargo.toml for cross-tls-crate-dylib.
- Modified the initial value of the thread-local variable FOO from 2.0 to 1.0 in the main.rs test file.
- Updated the output message in main.rs to be more descriptive.
- Added a new field `tls_fixups` to the JumpTable struct in subsecond-types, which will facilitate future runtime TLS sharing.
* ws hotpatch!
* remove old file
* undo core change
* svh
* Enhance rlib path resolution by incorporating -C extra-filename handling
* remove obj diffing
* small cleanups
* obj cache as files
* simplify
* simplify a bit
* dont bother round tripping cache
* extract to helper
* cleanup `build` function
* dont round-trip modified_crates
* make sure to wipe between full
* bit of a cleanup
* use explicit naming
* compact extra method
* fix temp cleanup
* fix warnign
* cleanup
* fmt, clippy
* trim
* works a bit better
* almost...
* it work?
* yay!
* codex tried a thing
* move
* reduce to 1
* remove search
* simplify
* adjust test case
* clippy
* attempt fix for flakey playwright test
* fix link
* disable blitz-shell file dialog
* remove rfd integration in native for now
* undo file-dialog pass-thru in anticipation of blitz-shell update
* upgrade to blacksmith
* blitz-shell bump
* use faster runner
* wip: failing test
* edit harness a bit
* wip, not fixed entirely
* fix comment accumulation and whitespace
* fix: autofmt syncrhonize edits with vscode waitUntil edit pipeline
* fix optimization collapsing away whitespace
* comment out test case for now
we added some logs around unmatched ifuncs, but we actually didn't need them.
this is because ifuncs can be *new* even if there isn't and old corresponding ifunc.