On 5/4/15 9:51 PM, Joshua Cranmer 🐧 wrote:
>>> Is it not possible to let applications choose whether or not they
>>> want to support binary XPCOM components in extensions?
>>
>> Is it possible right now? Probably yes, with a little work to get the
>> flag from the app config down into XPCOM. I'd review the patch,
>> although I'm not going to write it.
>
> I was actually thinking of a configure-level flag, which would (if my
> understanding of the patch is correct) require only a single ifdef
> within the file.
Yes, as the Lightning owner I would appreciate if this could be done on
a configure-level flag.
Firefox uses Intent to deprecate/Intent to unship messages for lots of
things, I think its a bit unfair to not do it for this feature. I know
the HTTP discussion has exploded and that might not make it lucrative to
get into discussion before actually writing the patch, but it is still a
pretty big feature.
I've ported our binary component to javascript, but performance is not
up to par. Code that takes a few hundred milliseconds with the binary
component take about 6 seconds with the javascript port. I've went
through the javascript with a js engine expert, but they couldn't
identify anything but micro optimzations.
I've also attempted to port the component using jsctypes, but there is a
blocking bug 1059370 in the way and the person who is capable of
debugging and fixing the issue unfortunately doesn't have time.
The only quick fix I see is to compile the binary component into
Thunderbird, but then again this would defeat the purpose of an
extension and also require Seamonkey and other Products to do the same.
I would be less uncomfortable with this if we had more time to work on
alternatives and our options weren't so little. I understand that
getting rid of xpcom is a long term goal, but as it takes time to remove
xpcom it will also take time to rewrite a project based on xpcom to be a
project independent of xpcom. Especially in a community project with
just a handful of voluntary contributors. Cutting of support for binary
components at this end makes it so much harder to transition.
Philipp