Print Story Say what you like, just spell my name right ...
Software
By yicky yacky (Sat Mar 04, 2006 at 09:20:54 AM EST) browsers, mozilla, firefox, HIG, design, monkeys, fun loving cowwqas. (all tags)

Attention Firefox-using infidels! (that includes the special children who've been sent to stand in the corner with Camino and Seamonkey)

If / When you install an extension, where do you prefer said extension to put its options? (ObFnarFnar ...)

You can have a direct influence on a real development project!



How can we do this? Let me count the ways ...

 

Option 1

Many extensions place their 'options trigger', for want of a better term, as an item on the 'Tools' menu: Click the 'Tools' menu, click the name and launch the extension-specific options window etc. (much like this)

There are a number of problems with this. Firstly: The extension guidelines ask that you not do it. This is:

  • partially because the 'Tools' menu is supposed to be for ... well ... tools;
  • partially because having a number of extensions doing this fills-up the menu very quickly, and ...
  • partially because the Windows versions of Firefox keep their browser-global 'Options' on the tools menu, and things / users can get confused.

Nevertheless: Owing to precedent, the fact that all the inbuilt tools have their options there, the nature of the mozilla framework and (really-fucking-annoying) bugs lying in certain parts of the mozilla API, the 'Tools' menu has become a de facto standard place to put your extension 'options'.

 

Option 2

A number of extensions put their entire options window (rather than just a 'trigger' button) on the global browser preferences tab itself. This is hard to explain, but in this image you can see that the 'HP Scheduler' extension has appended its option panel to the global preferences.

To my mind, this seems clumsy, as a.) butchering the global preferences seems a bit presumptuous, b.) most people wouldn't know to look there immediately, c.) it require a fair bit of clicking to get there and d.) Not many extensions are so significant that they deserve space there. However: It is a cluster of 'Options' so placing it there has some semantic correctness.

 

Option 3

A number of extensions choose to have their 'options trigger' button as a tiny button on the status bar at the bottom of the window - down where the SSL padlock and RSS radar images live when relevant (roughly like this). This is both a blessing and a curse: It's small, it's discreet, it's easily-accessible, but it's also a distraction, non-obvious for the inexperienced and permanently on-screen. To my mind, this can only really be justified for things like pop-up blockers etc., where you might want instant access at any time. All this applies equally to putting the button on other toolbars etc.

 

Option 4 (aka 'What you're supposed to do')

What you're meant to do is provide a dedicated options panel which plugs-in to the 'Extensions' window itself.

If you click 'Tools > Extensions', it brings-up a window which looks something like this. If you look at the bottom row of that image, it contains a greyed-out (disabled) Options button. The idea is that you select the extension you're interested in and then click that button to change its options.

This is incredibly non-obvious for the inexperienced and requires a number of button clicks. However: It is the right place to put them, both instruction-wise and semantically, so placing them there makes sense. However: This part of the Mozilla API is buggy as fuck. A lot of GUI components misbehave in such circumstances, and a lot behave differently across differing browser versions (because the preference window API has been reworked so many times).

It's usually nothing which can't be worked around; but it requires a lot of hair-pulling web-research and bug-hunting, and usually ends up with far more in the way of dirty hacks than placing an option pane there was meant to circumvent in the first place. You'd be surprised at how many extensions don't provide an option window to this mechanism and this is one of the reasons people have ended up bastardizing the 'Tools' menu; because the code there is solid, reliable and much the same across Mozilla-based browsers.

 


 

The above aren't the only options - there are more (right-click context menus, for example), but I'm curious as to where you, the user, think they should go.

See Poll

 


 

       +------------+
Clock: | 97:1:39:39 |
       +------------+

< Once I was happy and had a good wife | BBC White season: 'Rivers of Blood' >
Say what you like, just spell my name right ... | 9 comments (9 topical, 0 hidden) | Trackback
Dude, by blixco (4.00 / 5) #1 Sat Mar 04, 2006 at 11:08:34 AM EST
you're thinking too much.  If the extension is a tool (say, a useragent switcher or an ad blocker or a PHP dissector) then I want it in the tools menu.  If it deals directly with targeted content (say, an ad blocker) then I want t9 be ble to right-click on the targeted content (say, a flash-based ad imploring me to kill a duck to get a free iPod) and select "fuck you motherfucker" and have said targeted content go the fuck away.

If it's an enhancement, say something I won't do a lot of interaction with, then when I go hunting for it I look n the place where Firefox tells me to look: Tools -> Extensions because it's there for a reason.  And if it's an extension that I need to interact with sometimes but not often, or is for decorative purposes only (such as the terror level alert extension) and in either case t needs to tell me a status, then I want it in the lower-right-hand corner, steadily blinking away.

So it all depends on purpose, ya dig?
---------------------------------
Taken out of context I must seem so strange - Ani DiFranco


Yeah, I dig tunnels by yicky yacky (4.00 / 1) #2 Sat Mar 04, 2006 at 11:40:13 AM EST

And I've been through them about eight different ways. ;)

It breaks down like this: There are only really two different ways to code an options panel. In this case, each method consists of ~120 lines of XML (plus an extra ~200 lines of script which is almost identical no matter which XML method you use, so it's a fixed cost). As the requirements are so small in this instant (120 lines being virtually nothing), I wrote it both ways round just to see the effects.

The 'hook-up' code is miniscule; I'm talking twenty lines - tops - no matter where you decide to hook it up to in the GUI. So, basically, it can go wherever-the-hell you like. It's more an arbitrary choice of where it should go.

The reason I didn't go into specifics was because I was after ideas of general principle rather than extension-customized opinions - partly because when you get into usage-specific opinions, everbody has slightly different ideas. But, this is HuSi ... ;)


----
Done.
[ Parent ]

No, blixco is right by Rogerborg (4.00 / 2) #3 Sat Mar 04, 2006 at 12:17:19 PM EST
It really does depend on what the extension does.  Put the New Republic down and deal with the situation as it is, not some fuzzy theoretical version of it.

-
Metus amatores matrum compescit, non clementia.
[ Parent ]

Well it's a strange balance by yicky yacky (2.00 / 0) #5 Sat Mar 04, 2006 at 01:30:29 PM EST

The thing I'm playing about with is a proto-content-nuker. At the moment, it nukes images - but it could be changed with relative ease to nuke other things (flash, java applets, blah, blah ...). The actual 'Nuke this' instruction is (to my way of thinking) in its rightful place on a right-click context menu: Right-click -> Nuke this -> It's gone.

However: It does two things (at present - it may change) which other content-blockers tend not to do (for various reasons, which we'll get to). Firstly, it nukes based on content URI (and / or hash) rather than content-delivery URL. This means that instead of 'Block all images from the BBC', you get to 'Get rid of this specific image right here but leave the rest'. The second is that (at present ...) it doesn't replace the nuked object with a stand-in you can click to get the original content back (a la flashblock), it actually removes it from the webpage DOM, it's gone, so you've nothing to right click to get it back. This means that you need a list of pruned content so that you can choose to un-nuke something. The prefs in question are basically "Is this thing on?" and "Here's the block list:".

Now, in its current guise, I want to put it on the 'Tools' menu - but there are good, non-theological reason why it perhaps shouldn't go there (not least Windows-users). The 'Tools > Extensions > MyExtension > Options' route seems too far out of the way for something of that immediate nature, but there's no reason it couldn't be hooked-up there as-well-as anywhere else it might go. It could go on the status bar - but I have a completely subjective distaste for things which help themselves to the status bar.

Another option is to rewrite it so that it replaces the nuked content with something else of the same size (which can then be clicked-on and the original content de-nuked). The problem with that is that either you have to replace it with a placeholder image (which always get annoying after a while) or you do it with a transparent gif (which people might not realize is there). At the moment, it crops the DOM and to hell with the consequences.

The basic problem is the old coder's lament: I wrote something entirely for myself, including hairy-bits, dirty hacks and large corner cases, but because I wrote the fecking thing I know all of those intimately and simply don't trigger them. If I want to change the blocklist, I know exactly how to do it etc. ...

BUT other people now want to use it, and a.) it's not really in any fit state without a makeover, b.) "Oh, you need to hack this conf file or do $x to about:config to change the block list" doesn't really cut it any more and c.) neither does "Fuck off: It's just a prototype" ;)


----
Done.
[ Parent ]

You might not like it by coryking (4.00 / 1) #7 Sat Mar 04, 2006 at 02:49:11 PM EST
And I agree with your qualms about the status bar.  However I think we might be overruled: the the top downloaded content blocker, adblock, puts its options in the status bar.  If they do it, then the majority of users would probably expect yours there as well.

But again, like everybody else says, it really depends on context.  I'd probably just top-level it: "Tools -> <blah>". That is where I usually expect prefernces to go.  The whole "Tools -> Extentions -> 'find your extention in the list box' -> 'Click options'" thing sucks and is too confusing.
We are Siamese if you please. We are Siamese if you don't please.
[ Parent ]

WTF is "Secure SSL"? by ammoniacal (4.00 / 1) #4 Sat Mar 04, 2006 at 12:53:02 PM EST
ALL OPTIONS ARE TO BE CONTROLLED FROM THE GENERAL PREFERENCES PANEL, AS THE LORD YAHWEH INTENDED.

This coomenat has be n soidnsord by hurricanbe ice malt liqur


Secure SSL by yicky yacky (2.00 / 0) #6 Sat Mar 04, 2006 at 01:31:42 PM EST

came from whence the hoi polloi did.


----
Done.
[ Parent ]

"Secure Secure Sockets Layer"? by ammoniacal (4.00 / 4) #8 Sat Mar 04, 2006 at 04:50:15 PM EST
Well, that soounds pretty fucking secure to me! Gotta gets me some of that right now.

This coomenat has be n soidnsord by hurricanbe ice malt liqur
[ Parent ]

All extensions... by NoMoreNicksLeft (4.00 / 1) #9 Sat Mar 04, 2006 at 05:13:39 PM EST
Should be in the options panel. They should get their own top button/tab, right next to "Advanced" called "Extensions", and each gets its own tab below. Extensions like greasemonkey should continue to put a statusbar widget down at the bottom, actual tools extensions could continue to make it available in Tools also, but this is what makes sense to me.

Of course, I don't expect them to fix that, even in 2.0. I guess Goodger did fix some things, but others don't make a whole lot of sense (a homepage button on a browser than can load more than 1 tab at startup? A go button, when even ijits tend to use the enter key?). Mind you, I'm still firmly in the Firefox camp, IE takes the inanity and multiplies it 10,000fold.
--
Do not look directly into laser with remaining good eye.


Say what you like, just spell my name right ... | 9 comments (9 topical, 0 hidden) | Trackback