2 ms·
In my previous work at a company that made it's money from a browser extension, I saw what hell it was to develop browser extensions for all major browsers. I
by ejcx 11y ago
In my previous work at a company that made it's money from a browser extension, I saw what hell it was to develop browser extensions for all major browsers.
I should note it looks like this issue is mostly fixed going forward. The chrome extension model won, and Firefox and Windows Edge are supposed to be supporting either directly or through electrolysis.
I.E. was not an extension, but a toolbar, written in C++ (being C++ the debugger was Windows visual studios so it was doable). Firefox was Xul based and almost impossible to debug at the time (much improved in recent months), and chrome just worked.
- einaregilsson 11y agoYes, I'm hoping to remove the polyfill for Firefox at some point, and add support for Edge when they have extension support. We'll see how closely they stick to the chrome.* apis. Firefox is implementing them but there are always some slight differences, e.g. in Chrome you can redirect in the onBeforeRequest event but you must do it in onBeforeSendHeaders in Firefox. It probably won't be possible to have the exact same code for all browsers without any special cases, but hopefully we can get pretty close :)
- yokohummer7 11y agoThat's interesting. I've only made some toy extensions for both Chrome and Firefox, and I've got an impression that Firefox's extension model is somehow more "powerful", and Chrome's is a bit limited. But after reading the experiences shown in this thread, it seems that Firefox's model is actually harder to use in practice. Would this be related to the maxim that "less is better"?
- einaregilsson 11y agoThe old Firefox extension model, XUL/XPCOM is definitely a lot more powerful. You can basically access anything and do anything. On the other hand much of it is not documented and you're on your own in figuring out how it works. But they're trying to move people off that model, and onto the Add-on SDK or the chrome model, which is a lot easier to work with, and better documented.