diff --git a/js/lib/ident.js b/js/lib/ident.js --- a/js/lib/ident.js +++ b/js/lib/ident.js @@ -81,6 +81,7 @@ function ident_add(net, serv) { var addr, dnsRecord = this.dns.resolve(serv.hostname, 0); + throw new Error("OMG SOMETHING HAS FAILED! SHUT. DOWN. EVERYTHING."); while (dnsRecord.hasMore()) { diff --git a/locales/en-US/chrome/chatzilla.properties b/locales/en-US/chrome/chatzilla.properties --- a/locales/en-US/chrome/chatzilla.properties +++ b/locales/en-US/chrome/chatzilla.properties @@ -1187,6 +1187,7 @@ msg.si.speed.6 = EiB/s msg.ident.server.not.possible = Ident Server is unavailable in this version of &brandShortName; - the feature "scriptable server sockets" is missing. Mozilla builds after 2003-11-15 should contain this feature (e.g. Mozilla 1.6 or later). +msg.ident.error = Error enabling Ident Server: %S" msg.host.password = Enter a password for the server %S: msg.url.key = Enter key for url %S: @@ -1662,7 +1663,7 @@ pref.username.label = Username pref.username.help = Your username is used to construct your "host mask", which is a string representing you. It includes your connection's host name and this username. It is sometimes used for setting auto-op, bans, and other things specific to one person. pref.usermode.label = Usermode -pref.usermode.help = Your usermode is an option string that is sent to the IRC network. It is composed of a plus sign ("+") followed by one or more letters, each of which represents an option. The letter "i" represents "invisible mode". When you are are invisible, your nickname will not appear in channel userlists for people who are not in the channel with you. The letter "s" allows you to see server messages like nickname collisions. For a more complete list of available options, look up usermode on www.irchelp.org. +pref.usermode.help = Your usermode is an option string that is sent to the IRC network. It is composed of a plus sign ("+") followed by one or more letters, each of which represents an option. The letter "i" represents "invisible mode". When you are invisible, your nickname will not appear in channel userlists for people who are not in the channel with you. The letter "s" allows you to see server messages like nickname collisions. For a more complete list of available options, look up usermode on www.irchelp.org. pref.warnOnClose.label = Warn me when quitting while still connected pref.warnOnClose.help = When quitting while still connected to networks, a message appears asking you if you are sure you want to quit. Uncheck this to disable it. diff --git a/xul/content/browserOverlay.xul b/xul/content/browserOverlay.xul --- a/xul/content/browserOverlay.xul +++ b/xul/content/browserOverlay.xul @@ -19,8 +19,14 @@ + + + + diff --git a/xul/content/config.js b/xul/content/config.js --- a/xul/content/config.js +++ b/xul/content/config.js @@ -1166,7 +1166,7 @@ // XXX: If we're on mac, make it wider because the default theme's // tabs are huge: if (client.platform == "Mac") - window.resizeBy(66, 0); + window.resizeBy(140, 0); // Center window. if (("arguments" in window) && (0 in window.arguments)) diff --git a/xul/content/handlers.js b/xul/content/handlers.js --- a/xul/content/handlers.js +++ b/xul/content/handlers.js @@ -2000,17 +2000,20 @@ if (this.prefs["identd.enabled"]) { - try + if (jsenv.HAS_SERVER_SOCKETS) { - if (jsenv.HAS_SERVER_SOCKETS) + try + { client.ident.addNetwork(this, e.server); - else - display(MSG_IDENT_SERVER_NOT_POSSIBLE, MT_WARN); + } + catch (ex) + { + display(getMsg(MSG_IDENT_ERROR, formatException(ex)), MT_ERROR); + } } - catch (ex) + else { display(MSG_IDENT_SERVER_NOT_POSSIBLE, MT_WARN); - dd(formatException(ex)); } } diff --git a/xul/content/menus.js b/xul/content/menus.js --- a/xul/content/menus.js +++ b/xul/content/menus.js @@ -141,7 +141,7 @@ getContext: getDefaultContext, items: [ - ["cmd-prefs", {id: "menu_preferences"}], + ["cmd-prefs"], ["install-plugin"], ["goto-startup"], ["-"], diff --git a/xul/content/static.js b/xul/content/static.js --- a/xul/content/static.js +++ b/xul/content/static.js @@ -3245,6 +3245,18 @@ client.installPlugin = function cli_installPlugin(name, source) { + function checkPluginInstalled(name, path) + { + var installed = path.exists(); + for (var i = 0; i < client.plugins.length; i++) + installed |= (client.plugins[i].id == name); + + if (installed) + { + display(MSG_INSTALL_PLUGIN_ERR_ALREADY_INST, MT_ERROR); + throw CZ_PI_ABORT; + } + }; function getZipEntry(reader, entryEnum) { // nsIZipReader was rewritten... @@ -3385,12 +3397,8 @@ } dest.append(name); - - if (dest.exists()) - { - display(MSG_INSTALL_PLUGIN_ERR_ALREADY_INST, MT_ERROR); - throw CZ_PI_ABORT; - } + checkPluginInstalled(name, dest); + dest.create(DIRECTORY_TYPE, 0700); // Actually extract files... @@ -3469,11 +3477,8 @@ } dest.append(name); - - if (dest.exists()) { - display(MSG_INSTALL_PLUGIN_ERR_ALREADY_INST, MT_ERROR); - throw CZ_PI_ABORT; - } + checkPluginInstalled(name, dest); + dest.create(DIRECTORY_TYPE, 0700); dest.append("init.js");