Readit News logoReadit News
igrunert commented on I tried Servo   spacebar.news/servo-under... · Posted by u/robtherobber
sirwhinesalot · a month ago
Not being funded by Google money is a pretty big deal. Some of the developers are former webkit devs so they have a good foundation to start from. It remains to be seen if they can pull it off.

Orion adding Windows support (getting WebKit running on Windows again) would be pretty good too.

igrunert · a month ago
WebKit runs on Windows, the Windows port just needs work to bring it up to the level of the Linux port. I got every JIT tier enabled in JavaScriptCore [1] and enabled libpas (the memory allocator). The Windows port is moving to Skia in line with the Linux port.

Really just needs more people (and companies) pushing it forward. Hopefully Kagi will be contributing improvements to the Windows port upstream.

[1] https://iangrunert.com/2024/10/07/every-jit-tier-enabled-jsc...

igrunert commented on I ported pigz from Unix to Windows   blog.kowalczyk.info/artic... · Posted by u/speckx
malkia · 2 months ago
These VirtualAlloc's may intermittently fail if the pagefile is growing...
igrunert · 2 months ago
Ah yeah, I see Firefox ran into that and added retries:

https://hacks.mozilla.org/2022/11/improving-firefox-stabilit...

Seems like a worthwhile change, though I'm not sure when I'll get around to it.

igrunert commented on I ported pigz from Unix to Windows   blog.kowalczyk.info/artic... · Posted by u/speckx
igrunert · 2 months ago
I recently ported WebKit's libpas memory allocator[1] to Windows, which used pthreads on the Linux and Darwin ports. Depending on what pthreads features you're using it's not that much code to shim to Windows APIs. It's around ~200 LOC[2] for WebKit's usage, which a lot smaller than pthread-win32.

[1] https://github.com/WebKit/WebKit/pull/41945 [2] https://github.com/WebKit/WebKit/blob/main/Source/bmalloc/li...

igrunert commented on Jemalloc Postmortem   jasone.github.io/2025/06/... · Posted by u/jasone
burnt-resistor · 3 months ago
Lesson: Don't let one megacorp dominate or take over your FOSS project. Push back somewhat and say "no" to too much help from one source.
igrunert · 3 months ago
I think the author was happy to be employed by a megacorp, along with a team to push jemalloc forward.

He and the other previous contributors are free to find new employers to continue such an arrangement, if any are willing to make that investment. Alternatively they could cobble together funding from a variety of smaller vendors. I think the author is happy to move on to other projects, after spending a long time in this problem space.

I don’t think that “don’t let one megacorp hire a team of contributors for your FOSS project” is the lesson here. I’d say it’s a lesson in working upstream - the contributions made during their Facebook / Meta investment are available for the community to build upon. They could’ve just as easily been made in a closed source fork inside Facebook, without violating the terms of the license.

Also Mozilla were unable to switch from their fork to the upstream version, and didn’t easily benefit from the Facebook / Meta investment as a result.

igrunert commented on Kagi Is Bringing Orion Web Browser to Linux   omgubuntu.co.uk/2025/03/k... · Posted by u/ulrischa
cosmic_cheese · 6 months ago
WebKit for Windows is not in a particularly well-maintained state, where WebKit-GTK (which is probably what Orion for Linux is built with) is in reasonable shape since it’s already used by GNOME Web (aka Epiphany). That might have something to do with it.
igrunert · 6 months ago
The gap between the Windows and GTK ports is shrinking. Every JIT tier has been enabled for JSC on Windows[1], and libpas (the custom memory allocator) should get enabled soon.

The Windows port is moving from Cairo to Skia soon as well, matching the GTK port (though I think the focus is enabling the CPU renderer to start).

Webkit's CI (EWS) is running the layout tests on Windows, and running more tests on Windows is mostly a matter of funding the hardware.

There's a few things still disabled on the Windows port, some rough edges, and not a lot of production use (Bun and Playwright are the main users). It'd definitely be more work than Linux, but it's not as bad as you'd think.

[1] https://iangrunert.com/2024/10/07/every-jit-tier-enabled-jsc...

igrunert commented on Welcome to Ladybird, a truly independent web browser   github.com/LadybirdBrowse... · Posted by u/goplayoutside
samiv · 6 months ago
I applaud the effort but seriously though I just wonder...

For reference, Chromimum (and therefore Chrome) is a monster of a project and has at this point probably over 10 million lines of code and has taken +20 years to develop with thousands of developers involved.

I can only conclude that:

   a) the modern WEB is so complicated that this is the minimum  required level of complexity to run and render modern WEB safely

   b) chromium is extravagantly over engineered and the actual amount of complexity and code needed to run and render modern WEB is actually much less

   c) Ladybird is actually not targeting the same features but some "suitable" subset of features.
If the answer is A) how does the small team working on Ladybird think they can actually pull this off? Are they all 10000x developers?

Or maybe the answer really is C thus making this a toy/hobby project?

One could of course then hope that the answer is b) but somehow I don't feel like it is.

igrunert · 6 months ago
While the modern web is complicated, there's a few things working in Ladybird's favor.

Web Platform Tests (1) make it significantly easier to test your compliance with W3C standards. You don't have to reverse engineer what other engines are doing all the time.

The standards documents themselves have improved over time, and are relatively comprehensive at this point. Again, you don't have to reverse engineer what other engines are doing, the spec is relatively comprehensive.

Ladybird has chosen to not add a JIT compiler for JS and Wasm, reducing complexity on the JS engine. They're already reached (or exceeded) other JS engines on the ECMAScript Test Suite Test262 (2).

There's a big differential between the level of investment in Chromium and the other engines - in part because Chrome / Chromium are often doing R&D to build out new specifications, which is more work than implementing a completed specification. There's also a large amount of work that goes into security for all three major engines - which (for now) is less of a concern for Ladybird.

I'm confident that the Ladybird team will hit their goal of Summer 2026 for a first Alpha version on Linux and macOS. They'll cut a release with whatever they have at that point - it's already able to render a large swathe of the modern web, and continues to improve month-on-month.

(1) https://web-platform-tests.org/ (2) https://test262.fyi/

igrunert commented on Welcome to Ladybird, a truly independent web browser   github.com/LadybirdBrowse... · Posted by u/goplayoutside
serviceberry · 6 months ago
The practical trade-off is that it is very, very difficult to secure a modern browser. Major vendors employ large teams of full-time security engineers and still ship vulnerable code with regularity. Companies such as Brave don't, but they get the benefit of getting many of the Chromium security features for free. Ladybird won't.

The thing that works in your favor is that Ladybird is very niche at this point, so unless some well-resourced adversary hates you specifically, it's unlikely that you'd be targeted.

igrunert · 6 months ago
Ladybird does have another slight advantage in that it only has an interpreter for JS and wasm, instead of maintaining multiple tiers of JIT compilation for both. That choice materially reduces the surface area for exploits.
igrunert commented on Servo's progress in 2024   servo.org/blog/2025/01/31... · Posted by u/brson
wiz21c · 7 months ago
Are the last percents harder to complete ? (law of diminishing returns)
igrunert · 7 months ago
For Ladybird - Andreas Kling called out that the vast majority of "easy tests" are passing and each additional test is going to be more difficult to come by going forward.

https://www.youtube.com/watch?v=-l8epGysffQ (1 minute - 4 minute)

igrunert commented on Rewrite Git history via drag-and-drop   retcon.app... · Posted by u/surprisetalk
lijok · 9 months ago
Reading "rewrite history" sets off so many red flags for me I struggle to take this seriously.

What are you trying to do? Are you embarrassed that you arrived at an end goal via a suboptimal sequence of steps, and are trying to present it in a way that conceals that fact? Is the auditor at the door? What's the end goal here?

igrunert · 9 months ago
There are a handful of git features which work significantly better with a clean history on main. If `git blame` points at a well crafted commit, it can help bring additional context to the line in question. In addition `git log -S<string>` can be used to find when code was introduced.

Both of these features aren't very useful when they point at a "wip" or similar commit message.

By all means push lots of little commits to your branch while you're figuring stuff out, but squash and rewrite history into logical commits (usually just one) before landing the change on main.

igrunert commented on WASM Is the New CGI   roborooter.com/post/wasm-... · Posted by u/burglins
kgeist · a year ago
Btw, is WASM really more secure? JVM and .NET basically have capability-based security thanks to their OOP design together with bytecode verification: if you can't take a reference to an object (say, there's a factory method with a check), you can't access that object in any way (a reference is like an access token).

As far as I understand, in WASM memory is a linear blob, so if I compile C++ to WASM, isn't it possible to reference a random segment of memory (say, via an unchecked array index exploit) and then do whatever you want with it (exploit other bugs in the original C++ app). The only benefit is that access to the OS is isolated, but all the other exploits are still possible (and impossible in JVM/.NET).

Am I missing something?

igrunert · a year ago
When discussing security it's important to keep in mind the threat model.

We're mostly concerned with being able to visit a malicious site, and execute wasm from that site without that wasm being able to execute arbitrary code on the host - breaking out of the sandbox in order to execute malware. You say the only benefit is that access to the OS is isolated, but that's the big benefit.

Having said that, WebAssembly has some design decisions that make your exploits significantly more difficult in practice. The call stack is a separate stack from WebAssembly memory that's effectively invisible to the running WebAssembly program, so return oriented programming exploits should be impossible. Also WebAssembly executable bytecode is separate from WebAssembly memory, making it impossible to inject bytecode via a buffer overflow + execute it.

If you want to generate WebAssembly code at runtime, link it in as a new function, and execute it, you need participation from the host, e.g. https://wingolog.org/archives/2022/08/18/just-in-time-code-g...

u/igrunert

KarmaCake day73March 21, 2016
About
https://iangrunert.com/
View Original