Hacker Newsnew | past | comments | ask | show | jobs | submit | emiliocobos's commentslogin

Xul would've had the same issues.


XUL would have had worse issues because it could make arbitrary XPCOM calls to all sorts of native components and nearly the full gamut of native component issues written mostly in C/C++.

XUL was in many ways always a ticking time bomb.


The current frontend still has the same XPCOM privilege access from JS, so as emiliocobos said, XUL vs. HTML does not change the security boundary. It's only a different markup language.


It still surprises me parts of Firefox still use XUL.


To people thinking that this was removed gratuitously please read the bug and linked bugs carefully.

This got in the way of implementing various improvements to <meta charset> and interop improvements to XHR.


Bobby (the Mozilla rep) was also heavily involved with Servo and Rust-in-Firefox, see e.g. https://bholley.net/blog/2017/stylo.html


A bit of extra context from looking at blame:

* It seems Google Location Services has been the default location provider since a long long time ago (probably since before the Mozilla service existed).

* It seems like Firefox uses system APIs (and only then falls back to GLS): https://bugzilla.mozilla.org/show_bug.cgi?id=1512161

* It seems at one point the plan was to switch to MLS completely, but was reverted before hitting release: https://bugzilla.mozilla.org/show_bug.cgi?id=1216662

* And it seems currently Firefox is using MLS on Early Beta / Nightly, and comparing results to GLS: https://searchfox.org/mozilla-central/rev/d6d8ea296d3560615f... / https://bugzilla.mozilla.org/show_bug.cgi?id=1637402


The STR for that bug are in comment 3, but I can try to get something better when I'm back home (on my phone now).

We get significant speed ups from parallelism and such on big doms over all during page load, but we also get speedups from dynamic change handling implementing smarter invalidation than Gecko, which basically restyles the whole subtree / every sibling if it finds a relevant combinator affected by a change.

WebKit does much better than Gecko for class and other attribute changes, at least for descendants, where you go down with the relevant selectors. Stylo's system is relatively similar, but doing selector matching ltr, and handling the same way state and id changes.

You can see components/style/invalidation/element in the servo repo for the relevant code in that regard.


(for more context, Facebook has a very small style recalc time, so we're bottlenecked right now on the time it takes for us to parse CSS, and build the data structures for selector-matching and invalidation, and the patches on the queue are https://github.com/servo/servo/pull/18191)


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: