New Extension API - Docs Updated!

Talk about add-ons and extension development.
Post Reply
User avatar
bengoodger
Posts: 318
Joined: November 4th, 2002, 4:24 pm
Location: Campbell, CA
Contact:

New Extension API - Docs Updated!

Post by bengoodger »

OK folks, the extension API will be changing for Firefox for 0.9 and you will have to repackage your extensions. Themes changes are described in the Themes forum.

This document describes the new packaging scheme: <a href="http://www.bengoodger.com/software/mb/extensions/packaging/extensions.html">How to write Firefox Extensions</a>

This document pretty accurately describes now what things will look like for 0.9 (there have been some changes to the one I posted about a week ago). I cover dependency checking in this document - it doesn't do anything in 0.9 but you can see what the vocab will look like.

The goals of these changes are to make it more difficult for extensions to do things they shouldn't be, while making packaging and installing extensions easier. These changes come bundled with extension uninstallation - use this new format and you get uninstall/enable/disable etc for free.
Last edited by bengoodger on May 17th, 2004, 1:26 am, edited 2 times in total.
User avatar
BenBasson
Moderator
Posts: 13671
Joined: February 13th, 2004, 5:49 am
Location: London, UK
Contact:

Post by BenBasson »

Thanks for the info, Ben. Will there be any sweeping changes to any other parts of the extension system (the overlay system, etc) with 0.9?
jedbro
Posts: 1899
Joined: November 10th, 2002, 12:35 pm
Location: Mexico / Boulder Co.
Contact:

Post by jedbro »

Execelent Ben.
Thanks for the heads up before the 0.9 release.
User avatar
alanjstr
Moderator
Posts: 9100
Joined: November 5th, 2002, 4:43 pm
Location: Anywhere but here
Contact:

Post by alanjstr »

Keep in mind that things are subject to change. We will need a way to distribute GUID so that it is indeed unique.

I'm not sure how extension packages that have installation-runtime options will be handled. For example, TBE asks if you want to install the Japanese Language Pack.

Of course I know nothing about writing extensions.
Former UMO Admin, Former MozillaZine General Mod
I am rarely on mozillaZine, so please do not send me a private message.
My Old Firefox config files
clav
Posts: 1974
Joined: November 5th, 2002, 3:25 am
Location: Lancaster, UK
Contact:

Post by clav »

So what happens to the various contents.rdf's? extension.rdf seems to contain everything that currently lives in content/foo/contents.rdf except for the xul overlay information.
Torisugari
Posts: 1634
Joined: November 4th, 2002, 8:34 pm
Location: Kyoto, Nippon (GMT +9)
Contact:

Post by Torisugari »

em:file is not a rdf container, that is, one xpi per one jar?

alanjstr:
IIRC, Ben said install triger script in html should handle them. I didn't agree to using install triger itself because of a security reason, but new api has uuid...


clav wrote:So what happens to the various contents.rdf's? extension.rdf seems to contain everything that currently lives in content/foo/contents.rdf except for the xul overlay information.
Exactly.
User avatar
coolynx
Posts: 61
Joined: July 11th, 2003, 4:29 am
Location: Riga, Latvia
Contact:

Post by coolynx »

I'm not a developer myself just an ordinary user. And this is from a users point of view.

Since the beginning of Phoenix times there were a lot of nice extensions that are discontinued and no more available in Firebird not to mention Firefox. I think that the main reason for many developers to discontinue to work on their extensions is the changes in new versions of Firefox that make older extensions incompatable.

I just tried some nightly builds and found out that none of my themes and extensions works :( So i'm absolutely positive that I woun't switch to Firefox 0.9 or newer version because of it. I need a browser not a testing toy and can not afford to loose all my "look and feel" with every new version of my favorite browser.

So far I have convienced more than 30% of my readers to change their browsers to some Mozilla clones, because I believed myself that Firefox will rule the world. Now I'm lost and think that 0.9 and even 1.0 version woun't be so good as I thought it be a year ago.

Will this new extension API make life easier or is it just the beginning of new versioning era?
lordmedikit
Posts: 447
Joined: August 1st, 2003, 9:18 am

Post by lordmedikit »

CooLynX wrote:I'm not a developer myself just an ordinary user. And this is from a users point of view.

Since the beginning of Phoenix times there were a lot of nice extensions that are discontinued and no more available in Firebird not to mention Firefox. I think that the main reason for many developers to discontinue to work on their extensions is the changes in new versions of Firefox that make older extensions incompatable.

I just tried some nightly builds and found out that none of my themes and extensions works :( So i'm absolutely positive that I woun't switch to Firefox 0.9 or newer version because of it. I need a browser not a testing toy and can not afford to loose all my "look and feel" with every new version of my favorite browser.

So far I have convienced more than 30% of my readers to change their browsers to some Mozilla clones, because I believed myself that Firefox will rule the world. Now I'm lost and think that 0.9 and even 1.0 version woun't be so good as I thought it be a year ago.

Will this new extension API make life easier or is it just the beginning of new versioning era?

You have to remember that pre 1.0 software is development software. I personally too find it quite annoying, especially as the developer of adblock seems to have gone awol. However, I think that these changes are needed to make Firefox more secure and make extensions easier for the average user to update.
jedbro
Posts: 1899
Joined: November 10th, 2002, 12:35 pm
Location: Mexico / Boulder Co.
Contact:

Post by jedbro »

CooLynX wrote:I need a browser not a testing toy and can not afford to loose all my "look and feel" with every new version of my favorite browser.


You shouldn't be using Firefox 0.8 then. No garantees are made when using pre-1.0 software.
Just so you know, it is very possible that things will need to be changed again from 0.9 to 1.0.
Welcome to the software world. Just remember though, all this is being done to make your life easier, and the end product will be so much better!

CooLynX wrote:Since the beginning of Phoenix times there were a lot of nice extensions that are discontinued and no more available in Firebird not to mention Firefox.


CooLynX, could you list a few extensions that you can remember that don't work or are nor available for Firefox?
Maybe we could easily bring them back.

clav wrote:So what happens to the various contents.rdf's? extension.rdf seems to contain everything that currently lives in content/foo/contents.rdf except for the xul overlay information.



I'm assuming you still need that contents.rdf for the browser to know where you want to overlay, although it looks like Firefox will now ignore the :

Code: Select all

<RDF:Description ..... ></RDF:Description>

part in the file.
Although that will still be needed until Thunderbird picks up these changes and for the suite.


Ben Goodger wrote:extension.xpi:
extension.rdf
chrome/extension.jar
components/extension.dll
components/extension.js
defaults/extension.something
defaults/preferences/extension.js


.... defaults files other than default preferences files in defaults and default preferences files in defaults/preferences....


What exactly would default files be?
Are there any specific files that should be in defaults/ instead of content/myext/?
User avatar
aaron
Posts: 3130
Joined: November 4th, 2002, 8:49 pm
Location: Texas
Contact:

Post by aaron »

Would anyone be willing to help me update the Basics extension for this new change? http://www.mozthemes.tk --> extensions --> basics
User avatar
MonkeeSage
Posts: 1011
Joined: December 20th, 2002, 8:15 pm

Post by MonkeeSage »

BTW, <code>uuidgen</code> is the *nix version of guidgen...


Shelumi`El
Jordan

S.D.G
"[M]en are usually satisfied with bad argument only when their convictions rest on other grounds." --John Oman
User avatar
alanjstr
Moderator
Posts: 9100
Joined: November 5th, 2002, 4:43 pm
Location: Anywhere but here
Contact:

Post by alanjstr »

As Ben said, this is a big change in the way things were done before. One of the goals is to prevent installing incompatible extensions. Another is to notify clients when an update is available. And, of course, the integrity of the application itself is being protected by preventing files being overwritten.
Former UMO Admin, Former MozillaZine General Mod
I am rarely on mozillaZine, so please do not send me a private message.
My Old Firefox config files
jedbro
Posts: 1899
Joined: November 10th, 2002, 12:35 pm
Location: Mexico / Boulder Co.
Contact:

Post by jedbro »

aaron wrote:Would anyone be willing to help me update the Basics extension for this new change? http://www.mozthemes.tk --> extensions --> basics

Sure, I'll help you out.
Although I'm think we should wait until we can get a hold on a build that contains these check-ins before doing so, as things could change between now and then.
User avatar
aaron
Posts: 3130
Joined: November 4th, 2002, 8:49 pm
Location: Texas
Contact:

Post by aaron »

Thanks Jedbro, and no hurry. You can email me at aaronspuler[at]myrealbox[dot]com if you want, so we don't have to fill up this thread with off-topic stuff.
User avatar
bengoodger
Posts: 318
Joined: November 4th, 2002, 4:24 pm
Location: Campbell, CA
Contact:

Post by bengoodger »

jedbro wrote:What exactly would default files be?
Are there any specific files that should be in defaults/ instead of content/myext/?


Any non-preferences defaults you might have. Firefox ships a number of such defaults files, e.g. a default bookmarks.html, a default mimeTypes.rdf, etc. I was simply providing a convenient location for extension authors to include any such files, should they need to. The preferences/ subdir is for preferences .js files only (the extension manager scans that dir for defaults preferences files to load as the app starts)
Post Reply