Closed Bug 435687 Opened 17 years ago Closed 16 years ago

Add Mibbit as a default IRC protocol web handler

Categories

(Firefox :: File Handling, enhancement, P4)

3.5 Branch
enhancement

Tracking

()

RESOLVED FIXED
Firefox 3.6a1

People

(Reporter: bugzilla, Assigned: stas)

References

Details

(Keywords: verified1.9.1)

Attachments

(1 file, 1 obsolete file)

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008051206 Firefox/3.0 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9) Gecko/2008051206 Firefox/3.0 Mibbit.com, a popular web based IRC client, has just added support for irc: URLs handling so it can be used as a default web handler using: javascript:window.navigator.registerProtocolHandler("irc","https://www.mibbit.com/?url=%s","Mibbit") Regarding capacity, James Moore (jimmy at provider domain), mibbit developer, says: "In terms of capacity, the current server should scale to around 30,000 online users. The current maximum is 1800 online users. So I think it should be fine. It's reasonably cheap to run, and easily scaled." Since hope is cheap, I hope this can make it for Firefox 3. Reproducible: Always Steps to Reproduce: 1. have no irc client installed 2. click on an irc: address 3. Actual Results: sad/frustration face Expected Results: happy/"the web is awesome" face
Flags: blocking-firefox3?
This would be a good thing to have, but way too late for the Firefox 3 train.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: wanted1.9.0.x?
Flags: wanted-firefox3+
Flags: blocking-firefox3?
Flags: blocking-firefox3-
Version: unspecified → 3.0 Branch
Please let us know if anything is required for this to happen. We're in active development, and pretty open to changes. I think it would be an awesome improvement in user experience to have this.
Just to sum up some discussion on IRC about this. Firstly the question of scaling, and if Mibbit can deal with the load... Mibbit is very scalable in terms of users, as it's essentially a proxy which means it can be spread over multiple servers as needed. Each backend server can handle tens of thousands of connections at the same time. Secondly, in terms of privacy etc, I've expanded the privacy policy on Mibbit, especially as regards logging (In summary, nothing is logged unless you create an account and ask for it to be logged). You can use https, and you can use ssl IRC connections to ensure greater privacy. It sounds like this would be quite a simple change in Firefox. If there are any other issues or queries as regards Mibbit, I'm sure they can be dealt with quickly.
If it also handles SSL irc connections, would that mean that it also would need to be the handler for ircs:// links? Before this is done, I'd like to see mibbit handle all cases of irc urls, including those listed at http://www.mozilla.org/projects/rt-messaging/chatzilla/irc-urls.html (even though it's based on an outdated draft RFC, it's the only one we've got)
Good points, I will implement those extra parameters to ensure Mibbit handles all of those cases. Should be done in the next few days.
irc:// and ircs:// are handled now, including all the other cases of irc urls. In short, it handles everything chatzilla handles (charset, pass, key, nick targets etc), apart from msg (Used to send an initial message). msg is not currently supported, but will be in the near future. Let me know if there's anything else.
ircs:// is an interesting case. Should mibbit really support that over http? Or just https, maybe forcing a redirect... (I haven't checked to see what the current behavior is).
Grrr....firefox thinking chatzilla is internal on IRCS:// links... In any case, if it is by default, it should go to https://mibbit.com
Beltzner: What say you on taking this in a point release?
Flags: wanted-firefox3.1?
(In reply to comment #9) > Beltzner: What say you on taking this in a point release? For some background information, we've added a new mailto: handler in a point release (Gmail)
The sooner, the better. It'd be wonderful to get this in a point release.
This depends on bug 452052.
Doesn't really meet the "wanted" criteria (security, stability, regression from maintenance release) for 1.9.0.x. However, we'll look at a reviewed and baked patch.
Flags: wanted1.9.0.x? → wanted1.9.0.x-
Would take a patch, if anyone's interested in throwing something together, I don't have the right link offhand but this is fairly straightforward. Is this en-US only, or is Mibbit localized?
Priority: -- → P4
Target Milestone: --- → Future
Mibbit is currently localized into French, German, Spanish, Dutch and Portuguese (Brasil). I would suggest that we ask all localizations if they want to ship with it. For reference, we do ship with English 30boxes (webcal handler) in all locales, just because there are no local equivalents.
First try. Should I add irc and ircs here: http://mxr.mozilla.org/mozilla-central/source/uriloader/exthandler/tests/unit/test_handlerService.js#232 ? A test build with this patch applied is available here: https://build.mozilla.org/tryserver-builds/2009-01-26_05:37-smalolepszy@mozilla.com-1232976975/ I tested the URIs on this page: http://www.mozilla.org/projects/rt-messaging/chatzilla/irc-urls.html The ?msg=sometext didn't work and neither did irc://moznet/sekret,needkey. All other URI tested OK.
Attachment #358877 - Flags: review?(mconnor)
Comment on attachment 358877 [details] [diff] [review] Add Mibbit as irc:// and ircs:// protocols handler Yes, we should add it to the tests. Stas and/or Kev, can you ask the localizers? Otherwise we should at least offer in all applicable locales. I'll let beltzner make the risk management call here, but this should be completely safe for b3
Attachment #358877 - Flags: review?(mconnor)
Attachment #358877 - Flags: review+
Attachment #358877 - Flags: approval1.9.1?
Flags: wanted-firefox3.1? → wanted-firefox3.1+
(In reply to comment #17) > Stas and/or Kev, can you ask the localizers? Otherwise we should at least > offer in all applicable locales. Just filed bug 479030 on that. I also posted an announcement on mozilla.dev.l10n: http://groups.google.com/group/mozilla.dev.l10n/browse_thread/thread/59c80d07597841f9# And blogged about it: http://informationisart.com/stas/mibbit-as-an-irc-protocol-handler-in-firefox-31-in-your-locale
How does this interact with someone installing ChatZilla as an extension? Will cZ (be seamlessly able to) take over handling of irc(s) URLs?
(In reply to comment #20) > How does this interact with someone installing ChatZilla as an extension? Will > cZ (be seamlessly able to) take over handling of irc(s) URLs? Yes, it'll work just fine.
(In reply to comment #20) > How does this interact with someone installing ChatZilla as an extension? Will > cZ (be seamlessly able to) take over handling of irc(s) URLs? If you install Chatzilla as an extension, it believes that IRC:// and IRCS:// links are internal, and you have to change certain about:config entries (I forget which) to make a web service the default. Annoying this is, and a bit too seamless for one who wants to use Chatzilla as an alternate client.
(In reply to comment #21) > (In reply to comment #20) > > How does this interact with someone installing ChatZilla as an extension? Will > > cZ (be seamlessly able to) take over handling of irc(s) URLs? > Yes, it'll work just fine. Sorry for being a bit offtopic, but - I suggest adding a fallback network handler for unknown protocols, which will be redirect queries to AMO, so people who try to click on ed2k:// links (emule) will be informed which extensions are capable to use this protocol. I'll go on and open a feature for this idea if it isn't planned...
Tomer: that does sound like a good idea; please do file that separately in bugzilla.
Is there a prompt before people are redirected and logged in? Please see bug 436137 for why I'm asking.
Why not just add Chatzilla instead? Web->IRC proxies cause lots of problems for IRC Administrators and channel operators. Most IRC servers scan for the use of open proxies by their users, but they don't scan idents (which mibbit creates from IP->hex). In addition, the use of ident based on real IP exposes the IRC user to malicious elements most IRC servers keep at bay by using cloaked hosts (i.e. network-HASHKEY.myisp.net)
We're working on some more localization options on Mibbit, so hopefully there'll be quite a few more supported soon. FYI, we have WEBIRC setup with 327 IRC networks now, which means that on these networks, your real IP is passed along, and used as the host. So cloaking, banning, glines, open proxy scans etc all work as they should. For the remaining networks that do not yet support WEBIRC, we do have to send the users IP in hex as the ident, so that channel ops can ban individuals. However, this has not really been a big issue over the last year. In reply to #25, yes there is a prompt which asks the user to provide a nickname, and click [connect] before a connection is established.
(In reply to comment #26) > Why not just add Chatzilla instead? Firefox is *not* SeaMonkey.
(In reply to comment #28) > (In reply to comment #26) > > Why not just add Chatzilla instead? > Firefox is *not* SeaMonkey. And that's a good thing?
(In reply to comment #29) > (In reply to comment #28) > > (In reply to comment #26) > > > Why not just add Chatzilla instead? > > Firefox is *not* SeaMonkey. > And that's a good thing? Yes. If you wish to suggest a change, try a new bug, (or see if there is a bug on it already) as this bug is for making Mibbit the default IRC protocol web handler.
Compared to the patch from comment 16, I just added: --- a/uriloader/exthandler/tests/unit/test_handlerService.js +++ b/uriloader/exthandler/tests/unit/test_handlerService.js @@ -231,16 +231,18 @@ function run_test() { // Make sure the handler service's enumerate method lists all known handlers. var handlerInfo2 = mimeSvc.getFromTypeAndExtension("nonexistent/type2", null); handlerSvc.store(handlerInfo2); var handlerTypes = ["nonexistent/type", "nonexistent/type2"]; if (haveDefaultHandlersVersion) { handlerTypes.push("webcal"); handlerTypes.push("mailto"); + handlerTypes.push("irc"); + handlerTypes.push("ircs"); } var handlers = handlerSvc.enumerate(); while (handlers.hasMoreElements()) { var handler = handlers.getNext().QueryInterface(Ci.nsIHandlerInfo); do_check_neq(handlerTypes.indexOf(handler.type), -1); handlerTypes.splice(handlerTypes.indexOf(handler.type), 1); } do_check_eq(handlerTypes.length, 0); Is this the right way to do this? Regarding localization: there has been good response to bug 479030. Here's the current list of locales that wish to have Mibbit added: [ar, ca, cs, da, de, eu, fa, fi, fr, ga-IE, he, hu, is, it, ja, ja-JP-mac, lt, nb-NO, nn-NO, pl, ru, sk, sv-SE, te, tr, vi, zh-CN, zh-TW] Axel said he had a script capable of adding new handlers across all locales en masse, so we should be able to add it rather quickly. It would be great to have this in for beta4. Thanks.
Attachment #365429 - Flags: review?(mconnor)
So, mibbit recently moved to a self signed certificate for their SSL version. Do we care? I'd say yes since that means when users use the protocol handler, they'll get a lovely warning page saying it's an invalid cert.
(In reply to comment #32) > So, mibbit recently moved to a self signed certificate for their SSL version. > Do we care? I'd say yes since that means when users use the protocol handler, > they'll get a lovely warning page saying it's an invalid cert. I don't see a self-signed certificate, but I do see mixed http/https content on https://www.mibbit.com/, which makes Firefox unhappy. The SSL certificate in use comes from GoDaddy (a DV cert), and it looks like it was just added last week or so.
#32 Yup sorry about that, it was fixed this morning. It was a slight typo. This cert is good for a year and we'll make sure we don't drop a typo in next time ;) #33 Yup, I'm aware of the mixed http/https content, I'm planning to fix that with some proxying etc as a priority. For example, any youtube thumbnails, image thumbnails etc may come from http rather than https. We're working on localization, and I was wondering if it'd be possible to have the locale passed on to Mibbit as well for future functionality? eg https://www.mibbit.com/?locale=ru&url=<IRC_URL> This would allow us to update Mibbit to support these locales with no extra changes needed.
Would it be possible for Mibbit to use Accept-Language HTTP header to detect that? It seems to be a more flexible solution than fixing a locale code in user's profile.
Language isn't locale, though, AIUI -- for our other in-product services like AMO we've had much better success with transferring the current app locale to the service explicitly. Accept-Language is still sent, of course, but knowing what locale the app is in was also useful in...some cases that I can't recall very clearly right now. :-/
The most important piece where we jump through loops to actually send the locale that the installed binary is in (and not whatever the user or and extension might have set general.useragent.locale to) is software update and other update notices. For a website like mibbit, I'd propose to determine the localization shown by - user choice: If the user is logged in, cookie authed or whatnot, present the user choice of language - accept-lang headers: This is the list of languages the user chose to see web pages in, with good fallback for minority languages as localization. Like, Frisian (minority language in the Netherlands) would offer Dutch, which is more likely to be present. The list is exposed in the preference dialog in Firefox, too. Not commonly changed, but set with a good default (hopefully) by the localization. - user agent locale, least good choice.
(In reply to comment #35) > Would it be possible for Mibbit to use Accept-Language HTTP header to detect > that? It seems to be a more flexible solution than fixing a locale code in > user's profile. Sure, we could do that, which would make the URLs tidier, as long as that header is pretty reliable and goes through proxies/web caches reasonably well which it should do.
Attachment #365429 - Flags: review?(mconnor) → review+
Comment on attachment 358877 [details] [diff] [review] Add Mibbit as irc:// and ircs:// protocols handler a191=beltzner
Attachment #358877 - Flags: approval1.9.1? → approval1.9.1+
Whoever's landing this, please actually land the patch with the tests, they're the same, the approval should carry over.
Keywords: checkin-needed
Assignee: nobody → stas
Status: NEW → RESOLVED
Closed: 16 years ago
OS: Windows XP → All
Hardware: x86 → All
Resolution: --- → FIXED
Target Milestone: Future → Firefox 3.2a1
Version: 3.0 Branch → 3.1 Branch
Attachment #358877 - Attachment is obsolete: true
Verified fixed on the 1.9.1 branch using Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b5pre) Gecko/20090518 Shiretoko/3.5b5pre and Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b5pre) Gecko/20090518 Shiretoko/3.5b5pre. Adding keyword.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: