Calendar:Deprecated:XPI Support

From MozillaWiki
Jump to: navigation, search


This topic is to discuss what the best way for building calendar is, as an extension (XPI) for other Mozilla Applications. Since Firefox and Thunderbird use the toolkit and Seamonkey uses xpfe, it is clear that having a way of separating the xpi for these is essential. Besides Firefox and Thunderbird extensions can benefit from the new winstripe graphics. We should keep in mind that less diversion better.

Ways that come to mind:

-Having #ifdefs across the code for compile time differences : Using APP_NAME as an #ifdef across make files and code.

-Having run-time if statements that decide based on the application name. Using navigator.vendor as a run-time distinguisher

Add your own:

-(by mvl) You can't always do a runtime check. For example, in xul files when including css or js files. You would need to move all that to the main .js. #ifdef has the problem of even more xpi's for the user to choose from. my idea: a calendar-common.jar for common files, and calendar-firefox.jar etc for non-common files. Then a clever build hack to put the different jars into on xpi and install.rdf magic to do the right thing. Not sure if that is practicly do-able though.

Once the discussion concludes here we can open a bug to implement the solution.

For what its worth (by Mark Carson) -

I've created a hacked version of the calendar extension (using the 17-DEC-2004 build) which uses "calendar.jar" from the Sunbird build of the same date. The only immediately appearant issues are an XML parse error in "aboutDialog.xul" where the entity "&vsersion" is undefined and the calendartoolbar icons are the old huge icons from an older extension build. My hacked version has new calendartoolbar icons (24x24 and 16x16 toolbar icons) and I just removed "&version" in favor of hard coded "0.2 RC1" for the time being in "aboutDialog.xul". Seems to work pretty well and gives the Sunbird theme and icons to the Thunderbird (and I assume Firefox) calendar extension. The hacked extension is available on my website