|
|
|
|
|
by pcwalton
3955 days ago
|
|
I'll copy and paste my comment from earlier: > Reaching into content windows is forbidden [modulo CPOWs] in multiprocess Firefox. That alone is going to break tons of addons. This necessitates a redesign. Since a major redesign is necessary anyway, it makes sense to future-proof the architecture so that addons will work in perpetuity. Ultimately, this ends up being friendlier to addon developers, since addons will break once instead of again and again as the architecture evolves. |
|
>Reaching into content windows is forbidden [modulo CPOWs] in multiprocess Firefox.
It is not forbidden, it is just different, using frame scripts or CPOWs.
>That alone is going to break tons of addons.
It will break a ton of add-ons, it will not break a ton of other add-ons. And also the "breakage" varies and would be a in the range of learning a bit about frame scripts and then fixing up a couple of tens to hundreds lines of code, as opposed to porting your entire add-on to an entirely new WebExtensions-API, which essentially would require a rewrite, if that is even possible at all without losing too much functionality.
>This necessitates a redesign.
It does not necessitate a redesign of the Firefox extension API if that's what you mean here.
>Since a major redesign is necessary anyway, it makes sense to future-proof the architecture so that addons will work in perpetuity.
Just like Add-on SDK add-ons will work in perpetuity... Oh wait, they never did. The WebExtensions API will introduce breaking changes sooner or later if you want to keep it sane and secure, as any API does, because no API is designed perfectly with perfect future vision.
It will probably break far less often than the "open API", and that is a good thing. I'm not opposed at all to a nice, new, shiny, stable WebExtensions API for those users that are not affected by it's limitations. Actually, I hoped that Jetpack/the Add-on SDK would become such an API back when...
>Ultimately, this ends up being friendlier to addon developers, since addons will break once instead of again and again as the architecture evolves.
It is not friendly to intensionally break thousands of existing code bases to the point where you will need to almost completely redesign and rewrite your code, wiping out a ton of add-ons in the process because the new API is either too limited to port the code or because the author simply does not have the resources available to rewrite a ton of code.