Live data from Hacker News

SerenityOS Browser now passes the Acid3 test

twitter.com

161–170 of 178 posts

Re: SerenityOS Browser now passes the Acid3 test

#161
post #137
post #99

Earlier quoted context omitted.

By his own admission he basically did nothing but coding all day long for most of his life, to the point where if he took a long vacation he'd be worried about getting rusty. For SerenityOS he basically holed up in a cabin for 6 months coding. At dayjob it was "60-80 hours a week", not forced but because he wanted to do it. That kind of sustained and focused work compounds over time and you just get better and better…

> Reading stories like his makes me think I'm probably in the wrong industry because I don't enjoy coding that much and definitely have a ton of other things I'd rather do. You're fine. Comparing yourself to Andreas Kling vis-a-vis coding is like saying you're going to stop playing the guitar because you're not Jimi Hendrix. Andreas Kling, while impressive and inspiring, is not normal. Most people, myself included, d…

Thanks, that is a good analogy and definitely helped me!

Re: SerenityOS Browser now passes the Acid3 test

#162

Earlier quoted context omitted.

The point is that a lot of sites out there don't need anything more than the web tech of 2 decades ago. With more people being aware of that and using browsers like this, the Google monopoly may weaken. I make it a point to complain whenever some site I need to use changes in the direction of Google's desires and becomes less browser-agnostic. It has had mixed results, but I suspect if a company is losing customers b…

> The point is that a lot of sites out there don't need anything more than the web tech of 2 decades ago. With more people being aware of that and using browsers like this, the Google monopoly may weaken. I always thought this was a way to get out of this, that agrees with your vision. First you'll need a powerful force to take back control on defining web standards. This new web standard would be a very simplistic o…

Gemini is one of such simplistic standards.

Re: SerenityOS Browser now passes the Acid3 test

#163
post #159

Earlier quoted context omitted.

The problem is: who's gonna use it? Sure, it's good to have more options but, the deploy base of browsers like Chrome are massive and IE6 only lost its position by being careless and stop evolving (and lets not forget it took years), which is something that is not happening with Chrome. Just to make clear, this is not specifically directed to you or your project, which is a great thing to do independently of the outc…

Having a lightweight embeddable browser engine (or even html parser) to use in your projects to display hypertext would be nice.

There are already: Ultralight, Sciter, Tauri, NeutralinoJS, DeskGap.

Re: SerenityOS Browser now passes the Acid3 test

#164

Earlier quoted context omitted.

The problem is: who's gonna use it? Sure, it's good to have more options but, the deploy base of browsers like Chrome are massive and IE6 only lost its position by being careless and stop evolving (and lets not forget it took years), which is something that is not happening with Chrome. Just to make clear, this is not specifically directed to you or your project, which is a great thing to do independently of the outc…

I think browsers are comparable to operating systems, and if we look at the richness of the Linux ecosystem, I'd say it can't hurt to have a few more browsers and browser engines. For example, most users wouldn't see the utility of Arch linux. And yet Arch linux is the backbone of Docker. Perhaps a new browser engine can fill a similar niche, targeting low resource usage and light browsing

There already are Ultralig.ht, Netsurf, Goanna - all lightweight web engines.

Re: SerenityOS Browser now passes the Acid3 test

#165
post #60

That's wonderful! How much RAM does it need? My biggest complaint about modern browsers is that I can't load a web page in less than 64 MiB, which is more than my entire computer had when I was running Netscape 3. The browsers are better now, but not in ways that necessarily use more memory.

Try Ultralight web engine or K-Meleon on Goanna, they are really lightweight.

Re: SerenityOS Browser now passes the Acid3 test

#166
post #149

Earlier quoted context omitted.

That's pretty dumb grading. Why not flip the sense of the assert for those three tests?

It's useful for statements like "Firefox 2.0 got 82/100 on the Acid3 test" to have truth-values that don't change over time. The Acid3 test is an important part of the history of the Web, and rewriting history is repugnant.

I meant why was it ever like that?

Re: SerenityOS Browser now passes the Acid3 test

#167
post #127
post #45

Earlier quoted context omitted.

Hmm, I'm seeing 99/100 in Chromium (mobile and desktop). I wonder what test is failing.

Passing the individual tests is only part of passing the complete test. Animations must be smooth and everything must be rendered pixel perfect to the sample image. All Chromium based browsers, I tried Chrome Chromium, Edge and Vivaldi appear to fail the test even if they get a 100/100 score. They all display a thin red line near the upper right of the white box. This line doesn't appear on the sample image.

Do your displays have non-integer scaling enabled?

Re: SerenityOS Browser now passes the Acid3 test

#168
post #153
post #146

Earlier quoted context omitted.

DOM nodes are mutable and have parent pointers, so there's no way to share structure between duplicated parts of the element tree; JS might mutate them to no longer be duplicates. NodeLists like the .childNodes property (but not the results of, say, .querySelectorAll) are required to be "live", magically updating when you change the document; this code produces 1 even though there's no explicit mutation of c: let d =…

I missed the editing window, but here's a simple example of ElementTree in Python; consider what it would take to do this in JS with the DOM if you had to implement .innerText yourself: >>> from xml.etree import ElementTree >>> def text(e): ... return (e.text or '') + ''.join( text(kid) for kid in e.getchildren()) + (e.tail or '') ... >>> text(ElementTree.fromstring(' My Malamute is really hairy. ')) 'My Malamute is…

You aren't implementing innerText, you're implementing textContent. Consider the HTML acdef. Using textContent results in "acdef", while innerText results in "acd\ne\nf". Implementing textContent is easy:

  function getText(node, returnArray){
    const a = Array.prototype.map.call(node.childNodes, e=>e.nodeType==3?e.data:getText(e, true))
    return returnArray?a:a.flat(Infinity).join("")
  }
Which can be golfed down to

  let getText=(n,f=(n,a)=>[].map.call(n.childNodes,e=>e.nodeType==3?e.data:f(e,1)))=>f(n,f).flat(1e333).join("")
InnerText is harder, you have to consider visibility and if the element is block or inline. You can't properly calculate innerText without parsing CSS.

Re: SerenityOS Browser now passes the Acid3 test

#169
post #168
post #153

Earlier quoted context omitted.

I missed the editing window, but here's a simple example of ElementTree in Python; consider what it would take to do this in JS with the DOM if you had to implement .innerText yourself: >>> from xml.etree import ElementTree >>> def text(e): ... return (e.text or '') + ''.join( text(kid) for kid in e.getchildren()) + (e.tail or '') ... >>> text(ElementTree.fromstring(' My Malamute is really hairy. ')) 'My Malamute is…

You aren't implementing innerText, you're implementing textContent. Consider the HTML a c d e f . Using textContent results in "acdef", while innerText results in "acd\ne\nf". Implementing textContent is easy: function getText(node, returnArray){ const a = Array.prototype.map.call(node.childNodes, e=>e.nodeType==3?e.data:getText(e, true)) return returnArray?a:a.flat(Infinity).join("") } Which can be golfed down to le…

Very nice! And thank you for the correction about innerText.

Still, I think that

    let getText = n => n.text + n.getchildren().map(getText).join('') + n.tail
is nicer than

    let getText=(n,f=(n,a)=>[].map.call(n.childNodes,e=>e.nodeType==3?e.data:f(e,1)))=>f(n,f).flat(1e333).join("")
and not just because it's less strokes.

Re: SerenityOS Browser now passes the Acid3 test

#170
post #60

That's wonderful! How much RAM does it need? My biggest complaint about modern browsers is that I can't load a web page in less than 64 MiB, which is more than my entire computer had when I was running Netscape 3. The browsers are better now, but not in ways that necessarily use more memory.

Try Ultralight web engine or K-Meleon on Goanna, they are really lightweight.

How much memory do they need to load this discussion thread page?
Post reply on HN