Tomaso wrote: ↑
The pushlog (which I linked to in the first post) is filled with "XMLHttpRequest
" fixes, so there might be something there worth looking into.
That long list is unfortunately all one bug, and that one bug could change the way XML is handled in a way that would negatively impact XUL plugins. That's likely why it wasn't implemented until Firefox 60, because that's when they completely ditched XUL plugins. If you'll notice, it was proposed 7 years ago and implemented much later.
This is likely one of those situations where we really don't want
to use their fix because we're still supporting XUL plugins. Basically what they did was gut XPCOM to have everything handled by WebIDL rather than fixing their own existing implementation. If you look through this bug list, we see they're ripping out XPCOM interfaces right and left and adding stuff to Servo.
Highlighting the checkbox in red when you fail to check it works. Subscribing to the newsletter works. But you can't dismiss the subscription dialog box using the X, or click checkout after ticking the box. Also, if you try reloading the page, the checkout button becomes greyed out and the box stays ticked. You have to go back to the item select screen and change your cart to get it to be clickable again.
I saw a message about a mutation observer show up at one point, and I'm noticing that jQuery is getting used here. If this does turn out to involve mutation observers, the relevant change they made was probably to Servo and not to what we use.
Doing a bisection with these builds isn't going to be easy either, because Mozilla only keeps the builds in-between nightlies for about a year, and I can't build them from source because getting my hands on an appropriate version of Rust is next to impossible. It needs version 1.23, and the Rust website will only give me version 1.40. It would be non-trivial to get this Firefox 60 code compiling with newer Rust. I almost had it after applying a couple of patches, but then it failed right near the end in a way that's really difficult to fix without knowing Rust well. I've been struggling with it for two days already and I'm starting to think the answer won't us help much even if I do get it to compile.