Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash reporter #87

Merged
merged 44 commits into from
Feb 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
ef3ba86
feat(native): restart program after panicking on Unix-like systems
white-axe Jan 7, 2024
02c78b5
fix(native): use `std::env::current_exe()` to get executable path
white-axe Jan 7, 2024
175a641
feat(native): add fallback restart code for non-Unix systems
white-axe Jan 7, 2024
a413e9f
feat(native): persist panic reports by saving to temporary files
white-axe Jan 8, 2024
1d79428
perf(web): panic channel now uses oneshot instead of flume
white-axe Jan 9, 2024
334cef6
feat(web): restart program and persist panic report after panicking
white-axe Jan 9, 2024
04506ea
perf(web): terminate worker thread after panicking
white-axe Jan 9, 2024
45d776e
merge: merge branch 'dev' into reporter
white-axe Jan 9, 2024
3711ce7
perf(web): unregister event listeners on panic
white-axe Jan 10, 2024
eb52d77
chore(web): remove extra use in web_runner.rs to reduce conflicts
white-axe Jan 10, 2024
c2b7915
refactor(web): remove unnecessary static variable from main.rs
white-axe Jan 10, 2024
0e58289
fix(web): set `clippy::missing_safety_doc` to `warn`
white-axe Jan 10, 2024
dcf8e5e
chore(web): fix clippy warnings
white-axe Jan 10, 2024
1a53401
feat: implement most of the reporter UI
white-axe Jan 11, 2024
2cb71e8
chore: rustfmt
white-axe Jan 11, 2024
8ee23ea
feat: implement sending reports
white-axe Jan 11, 2024
dfd628c
chore(web): update coi-serviceworker to commit 7b1d2a092d0d2dd2b7270b…
white-axe Jan 11, 2024
ee427ae
fix(web): reporter now uses no-cors when sending reports
white-axe Jan 11, 2024
f6a6de5
fix: fix reporter window height being too small
white-axe Jan 11, 2024
b15d4f4
fix(native): always print full backtraces
white-axe Jan 11, 2024
c0b14ce
fix: don't restart after panicking if UI failed to start
white-axe Jan 11, 2024
01cd88d
fix(web): compute Git version before running Trunk hooks
white-axe Jan 11, 2024
a366e7a
chore: rename `luminol_version` to `luminol_revision`
white-axe Jan 11, 2024
bb0286a
feat(web): service worker now caches Luminol's files
white-axe Jan 12, 2024
6326c06
chore(web): clippy
white-axe Jan 12, 2024
a1823ef
style: use declarative `cfg` macro for report `debug` field
white-axe Jan 12, 2024
adcb06e
fix(web): fix environment being inconsistent between page reloads
white-axe Jan 12, 2024
d648a39
chore: rustfmt
white-axe Jan 12, 2024
8dbb19a
fix(native): remove report file after failing to restart
white-axe Jan 13, 2024
1cfbe5f
fix: don't persist reporter's scroll position
white-axe Jan 13, 2024
bec6b91
fix(web): disable credentialless COEP
white-axe Jan 13, 2024
1d183cd
fix(web): undo last commit
white-axe Jan 13, 2024
d1f58ff
fix(web): increase robustness of the service worker
white-axe Jan 13, 2024
d015f86
fix(web): fix Git revision not always being updated
white-axe Jan 13, 2024
0bb88dc
merge: merge branch 'dev' into reporter
white-axe Jan 19, 2024
ee9a17c
merge: merge branch 'dev' into reporter
white-axe Jan 19, 2024
2eb555e
refactor: move Git version into `UpdateState`
white-axe Jan 20, 2024
9a2db73
style: remove unnecessary `thread_local` in `luminol_core`
white-axe Jan 20, 2024
aef37dd
merge: merge branch 'dev' into reporter
white-axe Jan 22, 2024
704d7eb
merge: merge branch 'dev' into reporter
white-axe Jan 23, 2024
02219cf
feat: add wgpu backend to report info
white-axe Jan 31, 2024
843e61e
merge: merge branch 'dev' into reporter
white-axe Jan 31, 2024
d6979cd
chore: fix an update-induced compiler error
white-axe Jan 31, 2024
65ba193
style: use `UiExt` in reporter window
white-axe Jan 31, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitattributes

This file was deleted.

48 changes: 43 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ doc_markdown = "allow"
missing_panics_doc = "allow"
too_many_lines = "allow"
# you must provide a safety doc.
missing_safety_doc = "forbid"
missing_safety_doc = "warn"

[workspace.package]
version = "0.4.0"
Expand Down Expand Up @@ -125,11 +125,10 @@ qp-trie = "0.8.2"
itertools = "0.11.0"

rfd = "0.12.0"
tempfile = "3.8.1"

rand = "0.8.5"

git-version = "0.3.9"

luminol-audio = { version = "0.4.0", path = "crates/audio/" }
luminol-components = { version = "0.4.0", path = "crates/components/" }
luminol-config = { version = "0.4.0", path = "crates/config/" }
Expand Down Expand Up @@ -180,7 +179,7 @@ zstd = "0.13.0"
async-std.workspace = true
futures-lite.workspace = true

git-version.workspace = true
git-version = "0.3.9"

# Native
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
Expand All @@ -192,6 +191,7 @@ tokio = { version = "1.33", features = [
"rt-multi-thread",
"parking_lot",
] } # *sigh*
tempfile.workspace = true
luminol-term.workspace = true

# Set poll promise features here based on the target
Expand All @@ -213,7 +213,7 @@ wasm-bindgen = "0.2.87"
wasm-bindgen-futures = "0.4"
js-sys = "0.3"

flume.workspace = true
oneshot.workspace = true

luminol-web = { version = "0.4.0", path = "crates/web/" }

Expand Down
118 changes: 0 additions & 118 deletions assets/coi-serviceworker.js

This file was deleted.

15 changes: 12 additions & 3 deletions assets/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,16 @@
// You should have received a copy of the GNU General Public License
// along with Luminol. If not, see <http://www.gnu.org/licenses/>.

import wasm_bindgen, { luminol_main_start } from './luminol.js';
window.restartLuminol = async function() {
// We need to reload luminol.js every time by invalidating the cache,
// otherwise it'll just reload the same WebAssembly module every time
// instead of reinstantiating it
const invalidator = crypto.randomUUID();

await wasm_bindgen();
luminol_main_start();
const { default: wasm_bindgen, luminol_main_start } = await import(`./luminol.js?luminol-invalidator=${invalidator}`);

await wasm_bindgen();
luminol_main_start();
};

await window.restartLuminol();
Loading
Loading