XUL MSN Messenger
XUL MSN Messenger was an MSN Messenger clone, coded in JavaScript and XUL. It was available as an extension for Mozilla Suite/SeaMonkey and Firefox, and later could be run stand-alone with XULRunner.
The project was created on 17 June 2003 by Syko as a cross-platform alternative to the official client. It was hosted on MozDev until the latter was retired.
Back in 2007, having exorcised Internet Explorer from my Windows 95 system (which meant I could no longer use MSN Messenger 5), I was looking for an alternative, which is when I found this project. Not having had a release for years, it seemed abandoned, and the last release didn't work. That didn't stop me, a Mozilla Suite (now called SeaMonkey) user, from taking interest, and I started work on getting it working again.
Eventually I decided to take over the project. I contacted Syko and asked if he was okay with it, which he was, and after some e-mails to the MozDev admin, the project was transferred on 10 May 2007.
The client was updated to use version 8 of the communication protocol, MSNP, which was the minimum version that was supported. Work was underway to add support for MSNP9 and MSNC1, which enables display pictures and peer-to-peer file transfer. Before this could make its way to a release, however, Microsoft dropped support for MSNP9 in December 2009. With the newer versions of the protocol being increasingly complex and less unofficial documentation being available on them, the project effectively was put on life support until the entire MSN Messenger service was discontinued in 2013.
Downloads
- XUL MSN Messenger 0.9 (unreleased) source code
- XUL MSN Messenger 0.8.5 (21/11/2009)
- XUL MSN Messenger 0.8.5 (XULRunner) (21/11/2009)
- XUL MSN Messenger 0.8.4 (07/02/2009)
- XUL MSN Messenger 0.8.4 (XULRunner) (07/02/2009)
- XUL MSN Messenger 0.8.3 (19/12/2008)
- XUL MSN Messenger 0.8.3 (XULRunner) (19/12/2008)
- XUL MSN Messenger 0.8.2 (14/09/2008)
- XUL MSN Messenger 0.8.2 (XULRunner) (14/09/2008)
- XUL MSN Messenger 0.8.1 (18/06/2008)
- XUL MSN Messenger 0.8.1 (XULRunner) (18/06/2008)
- XUL MSN Messenger 0.8 (09/04/2008)
- XUL MSN Messenger 0.7.3 (23/10/2007)
- XUL MSN Messenger 0.7.2 (11/10/2007)
- XUL MSN Messenger 0.7.1 (19/09/2007)
- XUL MSN Messenger 0.7 (07/09/2007)
- XUL MSN Messenger 0.6.2 (19/06/2007)
- XUL MSN Messenger 0.6.1 (28/05/2007)
- XUL MSN Messenger 0.6 (23/05/2007)
- XUL MSN Messenger 0.5 (28/07/2003)
- French language pack for XUL MSN Messenger 0.5 by Laurent Hogue
- Chinese (Traditional) language pack for XUL MSN Messenger 0.5 by Wilson Lee
Change log
Yup, the change log of a dead project. Hey, it shows how hard I worked on it!
Version 0.8.5 (21/11/2009)
- Replaced escape and unescape function calls by encodeURIComponent and decodeURIComponent function calls respectively. This makes for better character escaping and unescaping, which should enable signing in with a password that contains certain non-alphanumeric characters.
- Adding a contact to a list no longer resets his/her display name to the e-mail address.
- The menu items "Send an Instant Message..." and "Send an E-mail..." in the Contacts menu and in the context menu now actually work.
- Adjusted CSS for instant messages for Gecko 1.9.x compatibility.
- Added it-IT locale supplied by Vink8_.
Version 0.8.4 (7/2/2009)
- Implemented a work-around for a server bug/change that prevented parsing of the commands that tell the client who was already online when you logged in.
Version 0.8.3 (12/12/2008)
- When a contact that you already had on your list added you to his/her list while you were offline, a bug would occur on the next login.
- Messages with at least two consecutive line breaks get parsed properly now, and should appear in full.
- Fixed undefined entity errors in fr-FR and nl-NL locales.
Version 0.8.2 (17/9/2008)
- For some reason notification messages of a contact recording a voice clip are sent by the server, which was unexpected and essentially froze the session window.
- Automatic Hotmail login has been fixed.
- (XULRunner) Double-clicking on the e-mail item didn't do anything. Code has been written to create a temporary HTML file that is opened in the default web browser.
Version 0.8.1 (18/6/2008)
- When unblocking a contact whose status is Online, it would be noted after the display name, when it shouldn't.
- After a contact status change, the client would update the display name on the server even when it hadn't changed.
Version 0.8 (9/4/2008)
- Implemented the new connection code contributed by Stephen Clavering.
- Improved the process of adding a contact.
- Adding a newline by pressing Enter/Return in an empty message box is no longer possible.
- It is now possible to invite contacts to a conversation.
- Implemented File Transfer.
- Fixed a bug that caused the login status to not be reflected by the Status menu.
- Fixed the bug that caused a contact to appear blocked when it wasn't at rare instances. It was caused by a server bug.
- When a contact is added to your reverse list and you are not asked how to handle it, the contact was added to the block list instead of the allow list.
- The BLP privacy value is now respected.
- The Contacts header is gone.
- The Preferences window is now tabbed, with more options.
- The "To:" bar is now coloured according to the contact's status.
- It is no longer possible to start a conversation with an offline contact.
- Font sizes are no longer fixed, but honour the user's font settings.
- Log file names are now unique.
- The possibility that a contact that's not in your contact list is present in a conversation with more than two contacts is now accounted for.
- The number representing the lists the contact is in was being stored as a string instead of an integer, which triggered at least one bug.
- Yet another server bug. Sometimes the server will send the e-mail address of the typing contact not in all lowercase characters. This possibility has been accounted for.
- Now the scroll bar will no longer jump to the bottom upon arrival of new messages while reading scrollback.
- Contacts that went offline still had their previous non-online status noted, if they had one.
Version 0.7.3 (22/10/2007)
- The new MD5 hash generation code had JavaScript syntax not supported by Gecko 1.8 and older, which would cause the MD5 hash function call to not be defined, which would in turn cause a disconnect.
- Messages stored in the buffer weren't sent with style information.
Version 0.7.2 (11/10/2007)
- The window handling reverse list changes has been fixed. It was sending bad commands that caused a disconnect.
- URLs at the end of a line but not at the end of a message are now properly handled.
- I don't know what I was thinking, but display names have to be unescaped at log-in while receiving the contact list, unlike what I said before.
Version 0.7.1 (19/9/2007)
- The possibility that contacts who are not in your contact list join an existing conversation is now accounted for.
- The month number in the status bar and log messages was off by one.
- Hours and minutes in the status bar and log messages now always consist of two digits.
- I've changed my mind about log times and now they aren't in UTC format anymore, but in the local time format.
- The time that the last message was received no longer gets lost when internally a new session is created.
- Fixed a bug that prevented this client from reestablishing a session after it was closed when both use this client.
- Forgot to escape display names at log-in while receiving the contact list.
Version 0.7 (6/9/2007)
- UniCode support. Display names and messages with non-ASCII characters will now be properly displayed.
- The e-mail textbox is already focused when you load the extension.
- The "To:" field in session windows now also shows each contact's status.
- Fixed bug that showed both the message not received and contact off-line notifications when an error that the message was not received was received.
- You can now see how the sign-in process progresses with a determined progress bar and sign-in status messages.
- The extension now handles the action of someone adding you while you are signed on.
- Fixed contact adding.
- Fixed bug 17344: "Can't login when account doesn't have buddies".
- Enhanced X-MMS support. This is the font information that MSN sends with each message. The PF parameter is now supported.
- Better error messages and handling.
- Session logging, complete with time stamps.
- Context menu for session message view.
- Contact details appear immediately in the "To:" field when a session opens.
- Links in messages are now clickable.
- Automatic Hotmail log-in reimplemented. You can now check your inbox by double-clicking on the message that indicates how many new e-mail messages you have, and easily send e-mail to contacts.
- Removed contact list caching (not supported by protocol anymore).
- The preferences window is now separate, instead of being embedded in Mozilla/SeaMonkey's preferences window.
- The icon next to the menus in the main window now changes accordingly when you change your status.
- Added the angry emoticon.
- Session windows now close when you sign out.
- Gecko's own MD5 implementation is now used thanks to code contributed by Stephen Clavering.
- The server's contact list is now kept up-to-date.
- The status bar now shows when the last message was received.
- Added Dutch (nl-NL) locale.
- Added French (fr-FR) locale.
- Added Firefox support.
Additionally, the menus have been reorganised.
Version 0.6.2 (18/06/2007)
- Starting to type when the contact hasn't joined yet will no longer trigger an exception that renders the session unusable.
- The cryptic "node not found" exception was caused by the MSN server randomly sending an already on-line (ILN) message long after log-in for a contact that already was online or an off-line message (FLN) for a contact that already was off-line. A check has been implemented to make sure each of these messages make sense when sent.
- Instead of showing an alert window when the contact you're trying to talk with is off-line, the message will appear in the window's messages view.
- Implemented a message that appears in the window's messages view for the error that occurs when the last message couldn't properly be sent.
- The server pinging procedure has been improved to be more reliable at handling a disconnect.
Version 0.6.1 (27/05/2007)
- When a contact initiates a session with you, your messages will be sent instead of put into the buffer.
- Changing your status now works. The current status was being sent instead of the changed one.
- A colon at the end of a message will no longer turn into a broken image.
- Sessions initiated by a contact are now properly registered, which fixes the case where a call from a contact after an idle session would open a second session window when having two sessions instead of using the current one.
- White-space in display names and messages that are displayed in the session window is now respected.
- Pressing Shift+Enter in the message box will insert a newline instead of sending the message.
Version 0.6 (22/05/2007)
- Corrected the XUL entity names for well-formedness.
- Implemented MSNP8 authentication.
- After submitting a message by pressing Return there will no longer be a newline inserted after the message box gets cleared.
- When a message is received, the corresponding session window will try to get your attention.
- Session windows no longer have unnecessary grippies.
- Better session management:
- It is no longer possible to open more than one session with a contact. If you attempt to, the existing session window will get focused. (*)
- A contact that has left the session will automatically be called back into the session when you start to type. (*)
- After you have been disconnected from the session due to it being idle for 5 minutes, a new session will be created and the contact called back when you start to type.
- Attempting to send one or more messages while the session hasn't been (re)created yet or when the contact hasn't (re)joined yet will temporarily put them in a buffer. They will be automatically sent as soon as the contact has joined.
- Implemented contact list caching.
- Long display names will no longer stretch the window. (*)
- You can now change your display name. (*)
- The unread e-mail messages count should work properly now (untested).
- Fixed the preferences window.
- Temporary removal of some features until I can re-implement them:
- No option to have the Password Manager store your user name and password.
- No automatic Hotmail login by double-clicking the unread e-mail messages count.
- As a consequence of the previous removal, choosing to send an e-mail message to a contact won't work either.
Under the hood, much of the code has been rewritten and modularised.
(*) This feature was already implemented in the nightly, but as I took 0.5 as my base, it has been re-implemented, based on the nightly's code.
Version 0.5 (28/07/2003)
First release. Used MSNP7 to authenticate to the MSN network.