Live data from Hacker News

The Ladybird browser project

ladybird.dev

271–280 of 293 posts

Re: The Ladybird browser project

#271

Earlier quoted context omitted.

> European Union is coming after apple.... seems short sighted I think you have a fundamental misunderstanding of the goals of the EU in this matter. The objective is not to keep both companies on even keel, but it is merely about enforcing existing anti-monopoly laws. If this results in Google gaining a de-facto browser monopoly then those same laws can be used to break up that monopoly when we get to it. What would…

> What would be the alternative in your opinion? Force Apple to allow alternative rendering engines, but only the ones with People already mistake Blink-only APIs like Web USB, Web Bluetooth, Web MIDI, etc. for web standards. The market is already dangerously close to where it was 20 years ago, where a vast number of web developers treat the most popular rendering engine as if it’s synonymous with the web. Handing mo…

The main issue with the ie monopoly was that it was an absolute trash browser, and MS wouldn't update it. Chrome is actually good and gets updates regularly.

It would be nice if there were more alternatives, but I can't really expect anyone to spend the resources necessary. I don't think crippling chrome for some kind of sense of "fairness" is a productive solution.

Re: The Ladybird browser project

#272
post #249

I want to feel excited for Ladybird, but it's an incredible shame that such a promising and potentially very important project has settled on a pushover licence and Discord for their communication platform. The latter especially is an antithesis of freedom and openness, which I feel ought to be valued by people celebrating Ladybird's progress.

They used IRC but they switched because IRC is just too inconvenient. Discord is proprietary, but it works really well for them. They chose to be pragmatic.

Re: The Ladybird browser project

#273
post #190

Are there any plans to rewrite the browser implementation in the Jakt language once that gets a bit more stable? Memory safety would be a unique advantage over other browsers (aside from Servo).

There are no concrete plans for anything with the Serenity ecosystem. But the main design goal of Jakt was originally for developing mainly GUI applications in SerenityOS. But if Jakt ever gets used in SerenityOS, a gradual rewrite of the libraries underlying the browser engine seems likely to me.

I will note though that development on the Jakt language has slowed down significantly. After extremely fast initial development, most Serenity developers no longer contribute to the language. Because everything is done exclusively when the contributors feel like it, development happens in bursts. And right now, Andreas is not actively working on Jakt, so very little improvement is happening there. The main developer working on the language is Ali Mohammadpur, but I don't think he is currently being paid to work on the project. So his contributions are also inconsistent.

Re: The Ladybird browser project

#274
post #102

Earlier quoted context omitted.

I think their C++ library is one of the reasons they can create capable software so quickly actually. They have jetisoned just a tonne of C++ nonesense and added some really nice modern features such as how they handle memory and errors. Also, you would think that having to implement EVERYTHING themselves ( they are making their own image decoders as an example -- inclding SVG ) would slow them down. However, as it i…

> they are making their own image decoders as an example -- inclding SVG Considering the vast amount of exploits that continually comes out of media decoders everywhere, this basically guarantees I will never ever use this browser.

I don't think that's a healthy mindset to have.

Just because something is widely used doesn't mean it's more secure (example: libwebp). The security issues tend to happen mostly when creating optimizations that bypass the "obviously secure" way to do things, but rely on an internal state that gets broken by another optimization down the line. This is way less frequent in "smaller" projects, just because they didn't need to go through that round of optimizations yet.

For this question specifically, tho, I think Ladybird is extremely interesting in terms of creating a security-focuses C++ project. Between the constant fuzzing that each part of Ladybird already goes under (courtesy of the OSS-Fuzz initiative), the first-class citizenship of process separation for the different features of the browser, the modern C++ used in Ladybird (that prevents a lot of the issues cropping up in commonly used media decoding libraries), the overall focus on accuracy over performance in library implementations, and the compiler-level sanitatization utils (UBSAN, ASAN) that are enabled-by-default, I think it's less likely that an critical security-impacting bug would exists in Ladybird's .ico support than in Webkit's for example.

Re: The Ladybird browser project

#275
post #47

It's been so inspiring to see him and his crew of hackers build a new, independent browser from scratch. I must admit I didn't think it was possible on this small scale in terms of man hours and funding. However, the thought has also crossed my mind if we're finally seeing fruits of browsers being better standardized on "95%"+ of the popular features -- and if writing a browser today is in fact easier than both writi…

It would be a bummer IMO to see XSLT abandoned. Its still a really interesting approach to the web and an alternative to today's JS-heavy client rendering.

The idea of being able to ship an XML template with basic logic like for loops alongside the actual XML data source is really unique today. If people cared to use XML at all, that really does cover quite a few use cases that we current reach for JSON + client JS today.

Re: The Ladybird browser project

#276
post #222

Earlier quoted context omitted.

That advice has context. Do not roll your own if the feature is not your core product offering . So don't roll crypto if you're not selling crypto. If it is your core offering (and media decoding is absolutely a core offering of a web browser), you should choose carefully whether to get it off the shelf or roll your own. Otherwise how would new/better stuff ever get built?!

If Apple and Google can’t even find all the vulnerabilities in their libs, how on earth would a scrappy team of a few devs, especially since media decode isn’t the sole thing they’re focused on? > Otherwise how would new/better stuff ever get built?! The problem here is that people are salivating to use this as their daily driver. When WireGuard was still in development, everyone got told in very strong terms to not…

Apple and google are big corpos and those are legendary for their inability to make anything properly. It has been a while since they were small and could move fast... So no, I would not take them as a standard.

Re: The Ladybird browser project

#277
post #68

Earlier quoted context omitted.

He is a world expert on Web rendering, and an extremely capable C++ developer. One of their success recipes is to code up the various specifications directly, which is - today - the best way to go about this. They are also heavily test-driven. He did not even use the C++ standard library, when he says "from scratch" it includes his own string class, for better or worse, which is fine since it's "just for fun", "to le…

> then Jakt, their own novel programming language, because neither C++ nor Rust is what makes him perfectly happy. TBH Jakt defaults to reference counting, which makes it compete more with Swift and Go rather than C/C++/Rust.

Wait what. Doesn't go have a proper garbage collector or do I need to get reeducated?

Re: The Ladybird browser project

#278
post #249

I want to feel excited for Ladybird, but it's an incredible shame that such a promising and potentially very important project has settled on a pushover licence and Discord for their communication platform. The latter especially is an antithesis of freedom and openness, which I feel ought to be valued by people celebrating Ladybird's progress.

They used IRC but they switched because IRC is just too inconvenient. Discord is proprietary, but it works really well for them. They chose to be pragmatic.

I get that Discord is more practical, but it is at the cost of freedom, trustworthiness and privacy. Communication platforms are the last place you should compromise on this, since your choice is directly going to affect the choices of many others.

There are tools which are much more user-friendly than IRC (and even Discord, in some aspects), such as Matrix or Zulip. They easily enough could’ve been more pragmatic picking those instead.

Re: The Ladybird browser project

#279
post #172

Earlier quoted context omitted.

I think HN is proprietary.

Indeed. I'm fine with HN though. I'm not the one running the non free code. One can browse it and participate to it without running any proprietary software. It works without JS, and the JS code is trivially small anyway. There are open source clients too. That's a pass for me. The day this changes, you won't see me here anymore. That would correspond to the NonFreeNet antifeature in F-Droid [1]. They could update th…

Hmm... Would a Discord custom client be considered libre enough? They officially see them as a violation of ToS but do not interfere unless they use too much bandwidth. Or would private/semi-private non-encrypted communications place it in another category?

Re: The Ladybird browser project

#280
post #257

Is there a way to create a binary to use this browser in a normal-ish way. Looks like the docks recommend using a script to run it, but I’d like to be able to package it for my personal package repository.

I just made a wrapper script that calls the script in the serenity repo (which I cloned into my home directory) and put the script in PATH e.g. in /usr/bin/ladybird. The content my script. > #!/usr/bin/env bash > cd ${HOME}/serenity && ./Meta/serenity.sh run lagom ladybird I guess you could create a .desktop file that invokes the script, or just the "serenity.sh" script directly.

Aha thanks very much for the validation. My solution is nearly identical. Much appreciated.
Post reply on HN