Developing Firefox Extensions with GNU/Linux 146
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."
this reminds me... (Score:2, Insightful)
Re:this reminds me... (Score:2, Interesting)
On the other hand, I allow all of my software to update themselves automatically, I allow every thing that has extensions to install them automatically when I request an extension, and I trust that virtually any program I run across will be ok.
And I've only seen two viruses in the last 2 decades (except on my brother's Amiga), both of which were on computers or hard drives that I i
Re:this reminds me... (Score:3, Insightful)
In theory, Firefox is a browser for the masses and is designed to supplant Internet Explorer. If Firefox has a userbase that's more technically sophisticated than other browsers, that only means that there's more work to do.
So please quit blowing yourself by thinking Firefox is l33t d00d software -- it isn't. The whole goal is stripped down and simple for the ordinary IE user.
Now i
Re:this reminds me... (Score:3, Insightful)
Just like signed ActiveX?
Anyone can sign something. For signing to work you need a trusted registry/organisation to cryptographically sign things and use a whitelist system to reject untrusted signitures, just like SSL certificates. But we aren't talking about certificates we're talking about code. Anytime someone sticks an official stamp on something people start expecting the official stamper/supposed quality assurer to
Re:this reminds me... (Score:3, Insightful)
If firefox become popular, it's possible there would be a ton of fake "Ad Block" and "Tab Browser" extentions, and signing is pretty much the only way to stop it.
If you want to see an example of this in action, search Google for "eMule", the opensource filesharing client. About 90% of the links go to
Re:this reminds me... (Score:3, Interesting)
Very very true. The problems with ActiveX all stem from uninformed users clicking yes to that XXX Toolbar popup.
I definately think it'd be a good idea for Mozilla to implement a community page for every extension any firefox browser anywhere tries to install from a remote location. Something much like the current extension directory, but inclusive of extensions not even hosted th
Re:this reminds me... (Score:3, Insightful)
Keep in mind that Kazaa was the run-away most popular filesharing client for years, despite all of the well-known spyware it came with.
If you want to moderate all of the "wrong" opinons or just plain spam on this proposed BBS, you might as well just skip a step and put the Cabal directly in charge. (Whether that would be mozilla.org is unlikely, I think.)
And since your proposal relies on hashes, browser support, and so
Re:this reminds me... (Score:2)
Re:this reminds me... (Score:2)
Theres also no gaurentee the domain/IP will remain the same..and then there's the privacy issue of sending mozilla url's of extensions you're trying to install.
Thats why i suggested some kind of heuristic/hash mechanism on the code.
Re:this reminds me... (Score:2, Insightful)
Re:this reminds me... (Score:2)
Check this [geocities.com] out for a simplistic demo of canvas support. (Must have Deer Park Beta 1 or greater)
Check the source code. Everything is written in javascript. Security doesn't sell browsers to non tech people. Cool widgets sells browsers to people.
The insecurity of the extensions can be fixed. Even right now firefox has a "OMG WTF THIS COULD BE BAD!!!" screen when you are installing an extension from a new site. You have to go through 3 pages to add t
Re:this reminds me... (Score:2)
Re:this reminds me... (Score:2)
Re:this reminds me... (Score:2)
Re:this reminds me... (Score:2)
Sounds like double-standards to me. "ActiveX and Firefox extensions are fundamentally the same thing, but one is good and one is bad because Firefox users are smarter". Surely the same "educated user" would also have no problems with ActiveX, in which case, where's the real difference?
Re:this reminds me... (Score:1)
With Firefox extensions I have to install the code, the page I am visiting does not make that choice for me. It is possible to install from different sites, but that requires changing the default settings...which most users won't do.
There is also the issue that an
Re:this reminds me... (Score:3, Informative)
What you say simply isn't true. I just booted up XP to check. The default settings are to prompt the user for signed controls and to ignore unsigned controls altogether.
Re:this reminds me... (Score:1)
In thinking about this a little more there is also the issue of users checking the box to trust code signed by the same source. For example, all code signed by Microsoft; which could then open them to insecure code that had been previously signed....unless their browser is also set to check revocation lists (and
Re:this reminds me... (Score:2)
The *idea* of self installing extensions is a good one really. Its unfortunate that our trust as end users continues to be exploited.
Re:this reminds me... (Score:2)
I think it was 5.5 IE that had the defaults to run anything signed automatically, and prompt for unsigned.
Re:this reminds me... (Score:2)
Never mind that you can't install any extensions by default anyway, unless they're from a trusted domain... and you can't even click through.
When the game of evil is over, and the score tallied, its activeX 1,635,498 vs firefox extensions 2. That should
Re:this reminds me... (Score:2)
So? You aren't seriously suggesting that it's difficult or impossible, are you? The Greasemonkey extension introduced a vulnerability by accident. You don't think the same thing can be done on purpose? Or is your opinion that it's just unlikely for anybody to do it? That's security by obscurity.
ActiveX has been in use for almo
Re:this reminds me... (Score:1, Flamebait)
Yeh, I like to make numbers up, but I forgot to label it sarcastic. Fuck you, loser.
I look forward to your next post, where you accuse Google of being run by the devil simply because they might do something lowlife in the future...
Re:this reminds me... (Score:2)
So it is security by obscurity that you are preaching?
Actually, I'm a Firefox user, I just don't feel the need to assert its superiority at every available opportunity, regardless of its merits.
Malware writers tend to target the most popular software. Firefox has been targeted too, though. Here's the first refere [slashdot.org]
Re:this reminds me... (Score:2)
>So it is security by obscurity that you are preaching?
Security by obscurity has a simple definition. It's "microsoft keeps bugs secret, so hackers can't use them!". Firefox, and its extensions, are open source. There is no such thing, dufus. What I meant is "show me the victims". It would be astronomically unlikely for there to be no victims for no other reason than "good luck". So if there are none (and you haven't produced any),
Re:this reminds me... (Score:2)
Against what ? If extensions can write to disk (which they can, downTHEMall! being a good example), they can write nasty things there. You disable that functionality, and DownTHEMall! stops working.
These are not Java applets we are talking about h
Re:this reminds me... (Score:2)
You people like to talk about marketshare being the significant factor (it just hasn't happened yet, because no one uses it). Me, it's starting to seem like maybe there is another factor, a social one that's a (the?) significant factor. Maybe good intentions do count for something.
I like to try
Re:this reminds me... (Score:1, Insightful)
I like to try out extensions from time to time, and yet, somehow I'm still safer than I ever could be using IE.
That safety is an illusion. I saw one extension (or it might have been a Greasemonkey script; the difference isn't important as it could have been either for this vulnerability to work) that was intended to serve as a browser-based single sign-on. It passed all the passwords to Javascript dynamically loaded from an external site. Purportedly, this was because it started out life as a bookmarkle
Re:this reminds me... (Score:2)
Because Firefox has such a low market share, it is simply not profitable to deploy spyware extensions for it.
Re:this reminds me... (Score:2)
Are there open IE bugs that allow this? Both products are susceptible to any worm/trojan dropping a malicious extension into the user's profile and/or whitelisting other sites.
Security through low marketshare?! There have been malicious ads/extensions that have targeted fi
Re:this reminds me... (Score:1, Flamebait)
Um, if you already got a trojan into a system, why would you bother to have it whitelist anything, instead of just doing whatever nastiness the extension was supposed to do ?
Doesn't make much sense t
Re:this reminds me... (Score:1)
works for Apple.
Re:this reminds me... (Score:5, Insightful)
Re:this reminds me... (Score:1)
Re:this reminds me... (Score:1)
Re:this reminds me... (Score:4, Informative)
Re:this reminds me... (Score:1)
Well, on a Linux or Unix system, it gets nicely sandboxed by the permissions system. Running a program as user simply doesn't give the program root authority.
ActiveX on the other hands, runs on Windows, and has basically full root access to the machine.
See the difference?Re:this reminds me... (Score:2)
What you have to realize: (Score:2)
It's all the ability to trust what you're putting on your hard drive to begin with. I run Windows on one box and Linux on the other. I tend to run OSS software on my Windows box too. Why? Becau
Re:this reminds me... (Score:5, Insightful)
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.
Re:this reminds me... (Score:2)
Netscape Plugins =~ ActiveX control
XPInstall =~ "ActiveX Web Distribution" (may not be the official name)
Firefox Extentions =~ Browser Helper Objects (BHOs)
The confusion I think is that most BHOs use ActiveX Distribution as the installation mechanism.
(And the other confusin is that MS has defined the term "ActiveX" in 9 differe
Re:this reminds me... (Score:2)
http://msdn.microsoft.com/workshop/delivery/downl
Re:this reminds me... (Score:2)
Right on. Firefox extensions are NOT equivalent of ActiveX per se. They're equivalent of BHOs (Browser Helper Objects).
Of course, there's a distinct difference there as well. MSIE users first learn of these "BHO" things when run their favorite anti-spyware program and discover they have quite a few more BHOs than they thought.
MSIE makes it easy to install BHOs. Perhaps too easy, leading to drive-by downloads.
Firefox .xpi install mechanism has been used to spread spyware too (a long long time ago), but
Re:this reminds me... (Score:2)
it would have been very bad if ActiveX had been a standard repertoire
Well, MS *did* want it to be the way to do what Flash does now, because it wasn't as limited compared to downloaded Java controls. But I'm going to guess
Re:this reminds me... (Score:2)
Umm, no. Windows Update can only be run by Administrator users, and administrators can (directly or indirectly) do anything to a system.
ActiveX has enough real problems that there's absolutely no need to manufacture ridiclous falsehoods in order to talk it down.
Re:this reminds me... (Score:1)
Regards,
Steve
Re:this reminds me... (Score:2)
Also, Mozilla extensions are inherently open-source. You can simply unzip the
They're a lot easier to trust and a lot more likeable than ActiveX controls, don't you think?
More misconceptions about XPCOM (Score:2)
Yes, there is a double standard about downloading ActiveX controls and XPCOM controls. XPCOM controls are at least as unsafe as ActiveX controls. At least ActiveX supports code signing [msdn.com], which XPCOM doesn't.
Open source has to do with the rights you have to use the code, not just that you can read the source code. It's certainly poss
Re:MathML (Score:2)
Whether the license on the copyrighted JavaScript says it's "open source" or not, if you can access and read the JavaScript code, it's out there in the open for all eyeballs to look at and discuss. Whether I can find a security hole or not or whether the code is obfuscated to hell or not is not really germane, nor is whether the authors know or not if the code has security holes in it, because there is probably s
Re:this reminds me... (Score:1)
Where's my bittorrent:// ? (Score:3, Insightful)
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!!!
Re:Where's my bittorrent:// ? (Score:1)
Waiting for you to write it?
Re:Where's my bittorrent:// ? (Score:5, Informative)
Re:Where's my bittorrent:// ? (Score:2, Informative)
Re:Where's my bittorrent:// ? (Score:2, Funny)
Re:Where's my bittorrent:// ? (Score:2)
You can do this now, as long as you have bittorrent installed. You can instruct Firefox to open torrent files in the application, just like we do with many other file types such as postscript.
I don't really see a need for the bittorrent:// protocol specifier; with the current system, torrents are files that are usually downloaded with http. Of course BT is another protocol in itself, but this would mean rather messy URLs because the contents of the t
Re:Where's my bittorrent:// ? (Score:2)
How would a bittorrent:// protocol and accompanying extention provide a better experience the current system of http, a torrent file, and a stand-alone client? It's only two fricking clicks to download something -- not like that's preventing people from installing Linux.
Re:Where's my bittorrent:// ? (Score:2)
"hot the heals"? (Score:1, Insightful)
And that statment "RC for Beta 1 of Firefox" without the "v 1.5" modifier implies that Firefox is something new that is about to be released. Does no one even try to edit these things?
You do realize that these mistakes distract readers' attention from the actual article content, right?
yes (Score:2)
There's a common saying around here...what is it? Oh yes: "You must be new here!" Or was that a rhetorical question?
> You do realize that these mistakes distract readers' attention
And if you've ever had your site slashdotted, you're probably grateful for anything that distracts some percentage of the readers.
In other words... (Score:5, Insightful)
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.
anti-ActiveX (Score:1, Informative)
ActiveX can't be exploited by other browsers & also limits the architecture and OS choice. The history of security problems with ActiveX has a much richer history. I don't know how much their model has really improved. Firefox extensions are in a combination of XML and JavaScript, so their functionality is a bit more limited. They are better sandboxed than IE ActiveX controls used to be. Firefox extension websites must be whitelisted before an install. I think IE ha
Common misconceptions about XPCOM and ActiveX (Score:5, Informative)
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 [piemenus.com] (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 [piemenus.com] or the Run On Sentence dynamic text animation style [piemenus.com] run with the same restrictions as JavaScript in the browser, so they can't access files or shape popup windows. (Also open source).
-Don
Re:anti-ActiveX (Score:2)
From the submission: "Extensions also have as much access to the file system as the user running Firefox." What sandboxing?
Re:anti-ActiveX (Score:4, Interesting)
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.
Re:In other words... (Score:4, Informative)
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
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.)
Re:In other words... (Score:2)
Internet Explorer 7 will have something called "low-rights IE" [msdn.com]. Another follow-up is on the IE weblog [msdn.com].
Re:In other words... (Score:2)
That means either waiting for Vista or waiting for someone to add this security model to Linux/X11. Hopefully Firefox (and other internet software packages) will mimic IE and also have "low-rights" support on Vista.
Re:In other words... (Score:1)
Re:In other words... (Score:3, Informative)
Re:In other words... (Score:1)
Make the file picker return a capability to access the file, not just the filename. Then if I want to upload a file using the web browser, picking it automatically gives Firefox permission to read it.
would you like to allow some-app-2 to change the following registry keys?
Firefox uses the Windows registry to set itself as the default handler for several protocols (e.g. http: [http]) and default handler for several file types (e
Re:In other words... (Score:2)
It's another reason why the file picker should be part of the desktop environment (like the window manager or panel) and not implemented separately by every application.
If your apps are GNOME apps or KDE apps then of course they use a library to display the file picker dialogue, but it's still running as part of the application. This means that the app needs to run with permission to view the whole directory tree and open an
Re:In other words... (Score:3, Interesting)
Stupid people are stupid, they make the Internet and the world a worse place for all of us. It's too bad I don't have the time to spend to revoke all of their life certificates.
Re:In other words... (Score:1, Informative)
The only site on the whitelist by default is addons.mozilla.org, where each extension is thoroughly checked that it works ok.
If someone is dumb enough to get a malicious extension installed with these security measures, he deserves to have his machine compromised.
Re:In other words... (Score:2)
Really? Who checks them, and vouches for their safety? Where on that site does it say that everything is 'thoroughly checked'? And if they do stand behind everything on that site, why don't they sign them? There's clearly no coherent policy yet [mozilla.org].
OK, so they don't write them, they won't sign them - fair enough. But then even the 'official workaround' XPI [mozilla.org] you could download to fix the ID
Thinking of writing an extension ... (Score:1, Troll)
My thinking on the subject (Score:5, Insightful)
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.
Danger Will Robinson! (Score:5, Insightful)
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!
Review of Pro Firefox? Other book suggestions (Score:2)
More Resources (Score:5, Informative)
http://www.xulplanet.com/ [xulplanet.com]
http://kb.mozillazine.org/Dev_:_Extensions [mozillazine.org]
http://roachfiend.com/archives/2004/12/08/how-to-
http://businesslogs.com/technology/firefox_extens
http://www.bengoodger.com/software/mb/extensions/
http://mozilla-firefox-extension-dev.blogspot.com
http://books.mozdev.org/index.html [mozdev.org]
http://www.mozilla.org/xpfe/gettingstarted.html [mozilla.org]
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.
Re:More Resources (Score:1)
Thank You (Score:2)
Talk about appropriate... (Score:3, Funny)
long-needed protocol handler (Score:1)
A Firefox plugin for supponting such URLs would be a huge boost for freenet.
www.freenetproject.org [freenetproject.org]
another tutorial (Score:2)
Speaking as one who has coded... (Score:1)
But I like how Python comes up yet again. It's nice, for once in my life, to learn a language and *then* see it catch on in a big way, instead of finishing learning a language on the very last day before it dies. I'm predicting that Python is going to soon
Re:XPIDL? (Score:1)
"XPCOM: OS Defence" being the most popular.
Re:Request for Firebird developers (Score:2, Informative)
HORRIBLE idea (Score:2)
Re:HORRIBLE idea..(and my inability to close tags) (Score:2, Redundant)
This is a bad idea because, as you noted, most spam spoofs FROM: and/or REPLY TO:
Instead of bouncing spam, you just harrass & send spam to some poor guy who had his email address borrowed by some spam bot. Congratulations! You just became
Re:HORRIBLE idea..(and my inability to close tags) (Score:3, Informative)
Please for the love of god people, don't bounce messages back saying "My spam filter has blocked your message". I didn't send it, I don't care. Leave me alone!!!!!
Re:HORRIBLE idea..(and my inability to close tags) (Score:1)
Re:HORRIBLE idea..(and my inability to close tags) (Score:3, Insightful)
Re:HORRIBLE idea..(and my inability to close tags) (Score:3, Insightful)
Re: Firefox 1.5 (Score:2)
Re: Firefox 1.5 (Score:1)
Re: Firefox 1.5 (Score:1)
Re:Hot on the Heals (Score:2)
Discussing the security vulnerabilities is entirely appropriate, but bringing them up on every Firefox article when it is completely off-topic is flamebait.
Re:Hot on the Heals (Score:1)
Re:But what if... (Score:2, Funny)