mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-03-21 20:24:42 +00:00
Depends on: https://github.com/lightpanda-io/zig-v8-fork/pull/152 We previously ran the message loop every 250ms. This commit changes it to run on every tick (much more frequently). It also runs microtasks after draining the message loop (since it can generate microtasks). Also, we use to run microtasks after each script execution. Now we drain the message Loop + microtasks. We still only drain the microtasks when executing v8 callbacks. As part of this change, we also adjust our wait time based on whether or not there are pending background tasks in v8 in order to try to execute them (in general) and in a timely manner. The goal is to ensure that tasks v8 enqueued on the foreground thread are executed promptly. This change is particularly useful for calls to webassembly as compilation happens in the background and eventually requires the message loop to be drained to continue. Previously, if a script did `await WebAssembly.instantiate(....)`, there was a good chance we'd never finish the code - we'd wait too long to run the message loop AND, after running it, we wouldn't necessarily resolve the promise.
20 lines
745 B
Zig
20 lines
745 B
Zig
.{
|
|
.name = .browser,
|
|
.paths = .{""},
|
|
.version = "0.0.0",
|
|
.fingerprint = 0xda130f3af836cea0, // Changing this has security and trust implications.
|
|
.minimum_zig_version = "0.15.2",
|
|
.dependencies = .{
|
|
.v8 = .{
|
|
.url = "https://github.com/lightpanda-io/zig-v8-fork/archive/8c7e5df8b93e7cbd42f8f1c4ac24aaa7f05cd098.tar.gz",
|
|
.hash = "v8-0.0.0-xddH64J7BAC81mkf6G9RbEJxS-W3TIRl5iFnShwbqCqy",
|
|
|
|
},
|
|
//.v8 = .{ .path = "../zig-v8-fork" },
|
|
.@"boringssl-zig" = .{
|
|
.url = "git+https://github.com/Syndica/boringssl-zig.git#c53df00d06b02b755ad88bbf4d1202ed9687b096",
|
|
.hash = "boringssl-0.1.0-VtJeWehMAAA4RNnwRnzEvKcS9rjsR1QVRw1uJrwXxmVK",
|
|
},
|
|
},
|
|
}
|