From the code I saw of it firefox's code is still pretty much in the 90s mindset. I mean I just went to the github repo and opened a random file and look at this :
https://github.com/mozilla/gecko-dev/blob/master/widget/Text... or this :
https://github.com/mozilla/gecko-dev/blob/master/dom/base/At...raw pointers everywhere, macros, etc etc
nsresult Attr::Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult, bool aPreallocateChildren) const
{
nsAutoString value;
const_cast<Attr*>(this)->GetValue(value);
...
makes my eyes bleed. the references to netscape everywhere are funny, too.