> In a browser, there are 2 main security components you want: The main security advantage is privsep. The other is W^X jit. Other security effects will follow from those design choices, especially if you have privsep. For instance, the chrome privsep is nicely refined and pledge enforcements could be added.
EDIT: Just to be clear I'm not arguing against DEP/W^X but simply appears he is contradicting himself.
- W^X defends against a subset of attacks that privsep defends against.
- Privsep is a bigger architectural impact than W^X. The entire app, almost everything, is impacted by privsep. Only the JIT is impacted by W^X.
So while it is nice that Firefox has been doing W^X, it doesn't mean they're closer to huge steps like Chrome-level privsep of processes. I hope they are, though.
My guess is that Theo's talking less about the XUL → WebExtensions transition and more about breaking compatibility with actual websites (and specifically the Javascript running on / loaded by said websites).
"then describes a security feature they have implemented for JIT that Chrome has yet to provide."
And immediately afterward describes how that security feature is actually implemented in a way that's relatively easy to circumvent (Firefox's JIT uses two "views" around the relevant chunk of memory - one writable, one executable - in order to technically implement W^X for each of those views without actually enforcing it for the underlying memory itself).
That doesn't sound much like self-contradiction to me; that sounds more like preemptively addressing the inevitable argument of "well Firefox does W^X on OpenBSD so it's gotta be more secure than Chrome, right?".
They seem to be willing to break compatibility as illustrated by them ditching their massive library of legacy extensions.
He seems to somewhat contradict himself by saying Mozilla won't do things to improve security then describes a security feature they have implemented for JIT that Chrome has yet to provide.