Though there might be a better way, I'm not aware of it...
You can use the preferences system to track whether it's a first run/update
Check if the preference exists, if not, open the page, create the pref with current extension version number.
If the preference exists, check it against the current extension version number, if they are different, assume it's an update and open the page. (assuming you want the page opened every time it's updated as well)
var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefService);
prefs.QueryInterface(Components.interfaces.nsIPrefBranch2);
if ((prefs.getPrefType("extensions.yourextensionhere.yourprerference") == PREF_INVALID)
|| (prefs.getCharPref("extensions.yourextensionhere.yourprerference") != this.version)) {
//open page and...
prefs.setCharPref("extensions.yourextensionhere.yourprerference",this.version)
}
EDIT.. version check used == instead of != as it should have