Slashdot Mirror


Developing Firefox Extensions with GNU/Linux

QT writes "Ars Technica has a lengthy but useful introduction to developing Firefox extensions with GNU/Linux. This guide comes hot on the heels of the RC for Beta 1 of Firefox. The article is a little more thorough than necessary, but I can't complain about anything that spurs Firefox development." From the article: "What can you do with a Firefox Extension? Firefox extensions can modify the Firefox user interface. This includes adding buttons to tool bars and menus; changing fonts, colors, and icons; capturing events in the client interface like page loads and clicks; and modifying web pages after the browser loads them and before the user sees them. All of this functionality comes with the aspect-oriented facility of overlays. Extensions also have as much access to the file system as the user running Firefox. Extensions can add protocol handlers, hooking actions to URLs like icq://, aim://, or stantz://. Extensions have UniversalXPConnect privileges, allowing them to harness any XPCOM component. Firefox comes with a rich library of XPCOM components that permit your extension to drive very low-level functionality like sockets from Javascript. You can also augment the XPCOM library with Firefox extensions by adding Javascript, linkable libraries, or XPIDL."

13 of 146 comments (clear)

  1. Where's my bittorrent:// ? by Anonymous Coward · · Score: 3, Insightful

    Where's my bittorrent:// protocol??!?!

    I would love to simply do a bittorrent from firefox. I think that'd spur alot more users and make it easier to... um... *LEGAL* download torrents... (like knoppix, fedora, etc.)

    Bring on the torrents!!!

    1. Re:Where's my bittorrent:// ? by brsmith4 · · Score: 5, Informative

      http://firepuddle.mozdev.org/ might help sometime soon...

  2. In other words... by nmb3000 · · Score: 4, Insightful

    Firefox extensions are are useful and powerful tools when used correctly, yet have the ability to easily become malicious and destructive if the user doesn't pay attention.

    Hmmm, sounds a lot like ActiveX. While the main intent for the two is a little different (browser tweaking vs. client-side scripting & server interaction), both require users to make informed decisions. People going on about how Firefox is so much safer because it doesn't support ActiveX might need to consider dropping that argument. As Firefox's market share grows, so will the number of websites that advertise Firefox plugins, and unaware users will be just as susceptible to malware and viruses as they were with IE.

    --
    "What do you despise? By this are you truly known." --Princess Irulan, Manual of Muad'Dib
    /)
    1. Re:In other words... by Unordained · · Score: 3, Informative

      It seems like it'd be nice if apps like Firefox were routinely (!) run as a user with fewer privs than the actual user sitting at the terminal. I know it needs -some- disk access for cache, etc. and some access to the user's files (when uploading or downloading specific files) but on the whole it'd be nice to have some sort of mechanism in place to keep apps from accessing things when they shouldn't. The view that an app should only have access to the current user's files is okay, but not ideal -- users still don't want their own setup trashed by some tricky extension, even if the rest of the host computer is fine. In a multi-user environment, that's not so easy ... creating a new user, for every app/user combination, that provides exactly the access required by the app and no more. Lots of maintenance.

      I'm not sure that users would be very accepting of an environment in which they were asked each time an app requested a new file handle -- "would you like to allow Firefox to access /home/unordained/file1.txt in read-only mode?" ... "would you like to allow p2p-app-1 to open a socket to ip xxx.xxx.xxx.xxx?" ... "would you like to allow some-app-2 to change the following registry keys?" ... but that is, (without the annoyance) what I'd like. Our computing environments are just far too unsafe for the average user.

      Suggestions? Existing (partial) solutions? (This is your opportunity to go on at length about your preferred, overly-safe-for-you operating system, and for others to trash it on grounds of any remaining work-arounds.)

  3. Danger Will Robinson! by Elrac · · Score: 5, Insightful
    All of this functionality comes with the aspect-oriented facility of overlays. Extensions also have as much access to the file system as the user running Firefox.
    But... but... isn't it just this extreme flexibility that represents the biggest Achilles heal (sic) of Outlook and IE? Isn't this what Mozilla proudly avoids?

    I realize that there are some differences, such as the fact that the red carpet is only rolled out for extensions the user trusts, but... when you advertise Firefox to dummies, your trusting users will BE dummies!
    --
    When one person suffers from a delusion, it is called insanity. When many people suffer from a delusion it is called Rel
  4. Re:this reminds me... by jd142 · · Score: 4, Insightful

    They don't have full access to the local machine, they only have the user's access to the local machine. There's an important difference.

  5. Re:this reminds me... by moonbender · · Score: 4, Insightful

    Simple: ActiveX was and is often used by websites to extend website functionality. For instance, Microsoft uses it to implement the functionality of its Windows Update website. Trend Micro uses it to implement the functionality of its house call anti virus service. And so on. Of course there isn't anything inherently bad about it, both examples are very useful. It would be very insecure, though, to allow untrusted sites to extend their functionality this way, and it would have been very bad if ActiveX had been a standard repertoire of web design in the way that Flash is, for example.

    Firefox extensions are quite different. They typically extend the functionality of the browser, independent of the web sites you might use. I say typically because there are counterexamples, for instance extensions designed to make working with Wikipedia easier. But this is the exception, not the norm. Firefox extensions aren't "meant" to be used by a lot of different web site, and people would find it quite strange if they were required to install an extension for viewing just one web site.

    So maybe the technology is similar (I wouldn't know), the way they are typically used, and were designed and meant to be used are quite different.

    --
    Switch back to Slashdot's D1 system.
  6. More Resources by stoolpigeon · · Score: 4, Informative

    These are a few sites that I found helpful. Some are a little old but I got something out of all of them.

    http://www.xulplanet.com/
    http://kb.mozillazine.org/Dev_:_Extensions
    http://roachfiend.com/archives/2004/12/08/how-to-c reate-firefox-extensions/
    http://businesslogs.com/technology/firefox_extensi on_tutorial.php
    http://www.bengoodger.com/software/mb/extensions/p ackaging/extensions.html
    http://mozilla-firefox-extension-dev.blogspot.com/
    http://books.mozdev.org/index.html
    http://www.mozilla.org/xpfe/gettingstarted.html

    Of course another good way to learn about extensions is to download a few and look at the code. That has probably been the biggest help to me once the tutorials, etc. gave me the basic idea of what is going on.

    --
    It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
  7. Re:this reminds me... by NutscrapeSucks · · Score: 3, Informative

    Or not so important, because Windows users generally run with administration privledges, and that's where the virus problem lies.

    --
    Whenever I hear the word 'Innovation', I reach for my pistol.
  8. Talk about appropriate... by null+etc. · · Score: 3, Funny
    The article is a little more thorough than necessary

    ...followed by a 146-word "excerpt" from the article.

  9. My thinking on the subject by TheSpoom · · Score: 4, Insightful

    When should you use a Firefox extension?

    Only when you're EXTENDING FIREFOX.

    If your website requires an extension (or, for that matter, ActiveX) to work, you're simply coding it incorrectly.

    Possible exceptions includes Windows Update, but even then, Microsoft coded that as part of the OS in XP, so the web portal really isn't necessary.

    --
    It's better to vote for what you want and not get it than to vote for what you don't want and get it.
    - E. Debs
  10. Common misconceptions about XPCOM and ActiveX by SimHacker · · Score: 4, Informative
    Noksagt, you are wrong, and spreading some common misconceptions, which you should stop repeating.

    XPCOM extensions for Firefox are compiled binary machine language files, which have just as much access to your system as ActiveX controls do. Firefox XPCOM extensions are no more secure than ActiveX controls. Binary ActiveX and XPCOM controls are useful for situations where you need to do things that JavaScript doesn't support, like shaping the window of a pie menu (an open source ActiveX component, that you can download the source code if you like).

    Internet Explorer has something similar to the way you can write Firefox extensions in JavaScript and UIL. But that's a totally different thing than binary ActiveX controls and behaviors, and it severly restricts what you can do.

    You can script trustable ActiveX controls for Internet Explorer called "Dynamic HTML Behavior Components", using JavaScript (or any other ActiveX compatible scripting languages), XML and DHTML.

    For example, user interface components like JavaScript Pie Menus for Internet Explorer or the Run On Sentence dynamic text animation style run with the same restrictions as JavaScript in the browser, so they can't access files or shape popup windows. (Also open source).

    -Don

    --
    Take a look and feel free: http://www.PieMenu.com
  11. Re:anti-ActiveX by Noksagt · · Score: 3, Interesting
    They are better sandboxed than IE ActiveX controls used to be.
    Here, I made a (rightly well-criticized) mistatement. I'm wrong. Both XPCOM and ActiveX can execute with full user-priviledges.

    As I said, though: webpages could tell IE (at least used to) where to download an ActiveX control. If the control was not already installed, IE would automatically download and install the control from the specified source. In firefox, the page must me whitelisted before extensions could be downloaded. Can someone tell me if IE has changed to the whitelist model yet? Last I heard, they were even maintaining a list of malicious ActiveX controls. This seemed inance to me, as there is most likely more malicious junk out there than truly useful controls.