How To Fix Broken about:home Search In Firefox

Not that I recommend it, well actually I have, and do for “advanced” users (I will update that at some point), but occasionally cleaning out your Firefox profile can be a good thing. Every so often I clean the cruft out of mine. Here’s a little quirk however. The new-ish browser start page won’t perform a search when localStorage is cleaned out. It will manifest by simply doing nothing when you try to search. The form goes nowhere. If you look for errors in the console you’ll see:

"gSearchEngine is null"

The best solution I’ve found to fixing this is to go into about:config and reset (right click -> reset) these properties and restart:

browser.startup.homepage_override.buildID
browser.startup.homepage_override.mstone

I suspect it’s just buildID, however neither should be harmful. Restart and they will be recreated.

Filing Good Bugs

Writing good bugs is important when dealing with software development. I deal with several Bugzilla installations meaning I’ve got some experience with both good and bad bug reports. While the specifics may vary based on the product your submitting a bug report for these basics rules will make life easier for everyone. In many cases will even help things get resolved quicker.

Bugs that are easy to triage, sort and sift are easier to take care of than those that are cryptic and require more investigation. If you want your issue to be addressed promptly make sure you facilitate the process by writing a good bug report. It’s not difficult and doesn’t require much technical know how, it just requires being explicit yet concise. If more information is needed a developer can request it and explain how to capture it.

Summary

A good summary is explicit yet brief. Upon reading it the purpose is clear and little is left to question. Here are several poor summaries, and the ideal way to submit them:

Bad: “add me to planet”
Good: “add john doe to planet.mozilla.org”. There’s no ambiguity there. Just reading the subject I can distinguish it from others in the queue.

Bad: “site crashes browser”
Good: “visiting a video permalink page crashes IE6”. Less ambiguity just make sure to add the url to the bug.

Bad: “javascript error”
Good: “Contact form has a javascript error in Chrome”. Again less ambiguity is key.

Description

Descriptions should ideally be front loaded with the important information. If it’s a bug report and not a request it should be followed by steps to reproduce including what you see, and what you expect to see. Reference attachments as appropriate (screenshots can be helpful).

Bad: “Visiting a video permalink page crashes IE6.”
Good: “Upon visiting a video permalink page in IE6 the video automatically starts playing. About 10 seconds into the ad the browser crashes. I am able to reproduce this consistently at the following link: http://domain.tld/…”.

Bad: “Contact form shows a JS error, can’t submit.”
Good: “When attempting to submit the contact form [http:/doman.tld/…] in IE 7 I get a “object expected” error and it refuses to continue.”

Always include URL’s when applicable or examples on ways to reproduce the error when possible. It’s hard to act upon “several pages” when your site has over a half million pages.

Attachments

Screenshots, traces, debug logs, mockups are generally helpful. As a rule make try to use browser-readable formats when possible. JPEG, GIF, PNG for images, txt, or if you must PDF for documents. Having to open PowerPoint or Word to view your screenshot isn’t cool. It makes people avoid what would be helpful information. Explanations on what you’re seeing and expect to see are also helpful for when it’s not obvious to someone else.

Severity/Priority

Always try to use restraint when setting the severity or priority on a bug. Unless it’s truly a show stopper avoid using the most severe status. Generally speaking most “normal” or a P3 (on a P1 – P5 priority scale). Remember The Boy Who Cried Wolf.

Version

If you know the version, please specify it. It helps when several versions of a product are still floating around.

Product/Component

I put this toward the bottom for a reason. Making a best guess is the most you can generally do. Just be sure to read the entire list before deciding as the best option may be beyond the one you’ve already found.

Following these simple guidelines can go a long way to making sure bugs get resolved quicker.

Mac OS X Keyboard Mapping

Back in 2002, Logitech gave away 20,000 Cordless Navigator Duo Keyboard/Mouse sets in celebration of 30 million cordless devices sold. For some reason Mac OS X doesn’t seem to recognize some keyboards correctly such as this, and even my standard Dell 104 Key Keyboard at work. Not sure why this is, but maybe being behind a KVM switch has something to do with it.

For anyone else who runs across this problem (and me next time I upgrade my OS and completely forget this), here’s the fix. First setup your keyboard with the wizard as Mac OS X prompts you to (it asks for the key next to the left shift key, and the right shift key). Once that’s done, go into System Preferences and select “Keyboard & Mouse”. Under “Keyboard” press the “Modifier Keys” button. Then change the settings to match your keyboard. For me the Apple (Command) and Alt/Option were inverted. Control was fine.

Keyboard Mapping On Mac OS X

Easy enough right? Now my keys map perfectly.

The Logitech Cordless Navigator Duo is a really cool keyboard since it’s one of the few that actually put both sets (Mac/Win) of lettering on the keys. There is software for this keyboard but in my experience Keyboard/Mouse software is garbage and should be avoided at all costs. It’s also not yet available for Mac OS X 10.5

Cleaning a Firefox Profile

I occasionally like to clean my Firefox profile. I test quite a few extensions, and play around a bit, so every once in a while, I just want to clean up. This method has worked rather well for me over the years. Essentially I imported my Netscape 4 profile into Netscape 7, then Mozilla App Suite, then split into Firefox and Thunderbird, so essentially I have data in there that’s several years old. I thought I’d share what I do, and why I do it, in hopes that perhaps someone else would benefit.

These directions were drafted with Firefox 1.5 as a reference point, for older or newer releases the directions may not work (for example if you use a Firefox build with “Places”).

A word of advice:

For the record, this is at your own risk, back up before you touch anything. Backup by copying The Firefox directory as mentioned in respective location below (a directory above Profiles). You’ve been warned.

Directions

You may want to start out by going to the Bookmarks menu and selecting “Manage Bookmarks”. Then cleaning out and organizing your bookmarks, if you want to keep them in your new profile. It’s a good habit to get into.

The first real step I do is visit my profiles directory:

Windows

C:\\Documents and Settings\\[Windows Username]\\Application Data\\Mozilla\\Firefox\\Profiles\\

Mac OS X

~/Library/Application Support/Firefox/Profiles/xxxxxxxx.default/

Your profile will be a directory with a salted name. Something like xxxxxxxx.default. Those x’s are random characters.

Because I only have 1 real profile (and one for dev purposes of which I choose to preserve nothing), I like to rename mine to something else. As far as I’m concerned this one is dead to me. I’m going to also get rid of the profiles.cfg and pluginreg.dat files in the Firefox Folder (up above profiles), then run Firefox and create a new profile on prompt. If you have multiple profiles you wish to leave untouched you would be better off using firefox.exe -profilemanager in the command prompt and simply creating a new profile.

Ok, so now we have this really clean new profile, and that old crusty one with lots of junk. Well, I want some of my stuff in my new clean profile, but only certain things. So here’s a breakdown of what I do, pick and choose as you want. Obviously the less you bring over, the better.

Only perform the following when Firefox is not running.

Bookmarks
Simply copy the bookmarks.html file from the old profile into the new profile.

Cookies (stay logged in with all your sites)
I like to carry these over, since I like being logged into certain sites (forums and such). Just copy the cookies.txt file from the old profile into the new profile. If you open the file up in a text editor you can delete a line or two (get rid of those old cookies, or just to satisfy that tin-foil-hat feeling). Just be careful if you do.

Password
I also like to keep my stored passwords (nothing important, just those news sites, and other silliness that I don’t feel like entering each and every time). Password Manager is great for that. The files you want to copy over are: cert8.db, secmod.db, key3.db, signons.txt.

Extensions
My recommendation on Extensions is to visit addons.mozilla.org (Google for the ones you can’t find) and re-download. The reason I prefer to do that rather than move them over, is because some just seem to stubborn to use the update service, and that leaves me with some old extensions. Also, in this process I typically realize there are one or two that sounded like great ideas, but I just never really used them. Less extensions means less chances for a memory leak. That’s always a good thing.

Search
Just copy the search.rdf file and searchplugins directory over.

Final Notes

This process typically takes me about 5-10 minutes (mainly depending on if I cleanup my bookmarks and cookies). Overall not bad. Gets rid of the crud that tends to accumulate over time, and keeps things pretty lean. This is also pretty useful if you encounter some profile corruption or other ugliness, especially if your one of us trusting soles who occasionally run nightlies from the trunk.

If you do it all correctly, you get a nice clean profile, but still keep your important data. Cache and autocomplete list will rebuild pretty quickly as you use the profile. I’ve found this technique is great for reviving that profile that’s just littered with garbage from various things I’ve done, and extensions I’ve tried.

Hopefully this helps someone.

Flash tutorial for Firefox 1.1

I briefly flashed the idea on #spreadfirefox, but I thought I’d elaborate on it here:

First Impressions are everything

We’ve said that before, and most agree. Psychologists have spent considerable time on this. People make very quick decisions on if they like something or not. They either like it, or they don’t. Impressions happen quickly. Firefox needs to make a good one. I think we can improve it by creating a Flash, JavaScript, or SVG based tutorial on first run. Something flashy, yet professional, and artistically done. Clean simple UI. Perhaps a few options on the main page:

  • Firefox Features
  • What’s new in this release – 1.1
  • Why Firefox
  • IE –> Firefox Tips and Tricks
  • Help Firefox

Each would bring you to some information, such as why you should use Firefox (including an animated demo of how ‘Tabbed browsing works’, ‘Livemarks’, etc. Minimal Text, maximum efficiency. In 5 minutes, the user should be able to see why Firefox is better by example, not by reading. How to use features etc. Simple, quick, easy to follow. Sexy animations show how it works. People are hesitant to read text.

What’s new, would be a great way to show users what changed since the last version. Remember: Firefox got this far by word of mouth. Letting current users see how much better each version got, makes them more inclined to tell some friends about it. Show off the new improvements in a way users are inclined to see them.

Help Firefox would perhaps discuss ways to help Firefox (obvious right). Spreadfirefox.com, report broken websites, report bugs, donate, buy Mozilla gear, etc.

Such a feature would popup on the first load of a new profile. At that point they could disable it from showing again. Next release it comes back with new features. Only once by default, unless the user decides otherwise.

What we accomplish

  • Show users what to look for when deciding if Firefox is right for them.
  • Show users the new features if they are upgrading.
  • Show users how to adjust to Firefox if they are a habitual IE user.
  • Show users how they can help Firefox.

I think we can all agree we want that.

Casual users don’t like reading. They don’t have the patience. It needs to be displayed for them. Illustrated for them. That is what will get more people to use Firefox. Remember: downloads are great, but we ultimately need users. That’s the goal here.