summaryrefslogtreecommitdiffabout
path: root/src/components/xriProtocolHandler.js
authorwilliamt <williamt>2007-01-05 10:10:55 (UTC)
committer williamt <williamt>2007-01-05 10:10:55 (UTC)
commitd85adfb349b3c7a988bec21fcbad86f5f98c70de (patch) (unidiff)
treeb0bff7d20e03d2e4ba4bfb3309059930006ab927 /src/components/xriProtocolHandler.js
parentc4b3096e166a0a9a60fd27c8f2dc06e688f13172 (diff)
downloadfoxri-d85adfb349b3c7a988bec21fcbad86f5f98c70de.zip
foxri-d85adfb349b3c7a988bec21fcbad86f5f98c70de.tar.gz
foxri-d85adfb349b3c7a988bec21fcbad86f5f98c70de.tar.bz2
* Updated for Firefox 2REL_1_1_2upstream/master
Diffstat (limited to 'src/components/xriProtocolHandler.js') (more/less context) (ignore whitespace changes)
-rwxr-xr-xsrc/components/xriProtocolHandler.js10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/components/xriProtocolHandler.js b/src/components/xriProtocolHandler.js
index 7046cde..1105874 100755
--- a/src/components/xriProtocolHandler.js
+++ b/src/components/xriProtocolHandler.js
@@ -222,193 +222,193 @@ function renderService(srv, doc, qxri)
222 222
223 // get the mediatypes 223 // get the mediatypes
224 mediaTypes = new Array(); 224 mediaTypes = new Array();
225 res = runExpr(doc, srv, "xrd:MediaType/text()"); 225 res = runExpr(doc, srv, "xrd:MediaType/text()");
226 var m; 226 var m;
227 while (m = res.iterateNext()) { 227 while (m = res.iterateNext()) {
228 if (!knownServiceType) { 228 if (!knownServiceType) {
229 var srvType = guessServiceTypeByMime(m.nodeValue); 229 var srvType = guessServiceTypeByMime(m.nodeValue);
230 knownServiceType = srvType? srvType : null; 230 knownServiceType = srvType? srvType : null;
231 } 231 }
232 232
233 mediaTypes.push(m.nodeValue); 233 mediaTypes.push(m.nodeValue);
234 if (m.nodeValue) { 234 if (m.nodeValue) {
235 html_mediatypes += "<strong>Media Type:</strong> " + m.nodeValue + "<br/>"; 235 html_mediatypes += "<strong>Media Type:</strong> " + m.nodeValue + "<br/>";
236 } 236 }
237 } 237 }
238 238
239 239
240 res = runExpr(doc, srv, "xrd:URI/text()"); 240 res = runExpr(doc, srv, "xrd:URI/text()");
241 var u; 241 var u;
242 while (u = res.iterateNext()) { 242 while (u = res.iterateNext()) {
243 if (!u.nodeValue) 243 if (!u.nodeValue)
244 continue; 244 continue;
245 245
246 var srvType = guessServiceTypeByURI(u.nodeValue); 246 var srvType = guessServiceTypeByURI(u.nodeValue);
247 if (!knownServiceType) { 247 if (!knownServiceType) {
248 knownServiceType = srvType; 248 knownServiceType = srvType;
249 } 249 }
250 250
251 html_uris += "<div class=\"" + getServiceClass(srvType) + "\">"; 251 html_uris += "<div class=\"" + getServiceClass(srvType) + "\">";
252 252
253 var linkContent = u.nodeValue; 253 var linkContent = u.nodeValue;
254 var uriParts = u.nodeValue.match('^(.*):(.*)$'); 254 var uriParts = u.nodeValue.match('^(.*):(.*)$');
255 if (!uriParts) 255 if (!uriParts)
256 continue; 256 continue;
257 257
258 if (uriParts[1] == 'data') { 258 if (uriParts[1] == 'data') {
259 uriParts = uriParts[2].match('^(.*/.*),(.*)'); 259 uriParts = uriParts[2].match('^(.*/.*),(.*)');
260 if (uriParts && uriParts[1].match('^image/', 'i')) { 260 if (uriParts && uriParts[1].match('^image/', 'i')) {
261 linkContent = "<img src=\"" + u.nodeValue + "\"/>"; 261 linkContent = "<img src=\"" + u.nodeValue + "\"/>";
262 } 262 }
263 else if (uriParts) { 263 else if (uriParts) {
264 linkContent = uriParts[1] + " data"; 264 linkContent = uriParts[1] + " data";
265 } 265 }
266 } 266 }
267 else if (uriParts[1] == 'skype') { 267 else if (uriParts[1] == 'skype') {
268 uriParts = uriParts[2].match('^(.*)\\?(.*)'); 268 uriParts = uriParts[2].match('^(.*)\\?(.*)');
269 if (uriParts) { 269 if (uriParts) {
270 if (uriParts[2] == "call") { 270 if (uriParts[2] == "call") {
271 linkContent = "<img src=\"chrome://foxri/content/skype_call_large.png\" alt=\"Call " + uriParts[1] + "\"/>"; 271 linkContent = "<img src=\"chrome://foxri/content/skype_call_large.png\" alt=\"Call " + uriParts[1] + "\"/>";
272 } 272 }
273 else if (uriParts[2] == "chat") { 273 else if (uriParts[2] == "chat") {
274 linkContent = "<img src=\"chrome://foxri/content/skype_chat_large.png\" alt=\"Chat with " + uriParts[1] + "\"/>"; 274 linkContent = "<img src=\"chrome://foxri/content/skype_chat_large.png\" alt=\"Chat with " + uriParts[1] + "\"/>";
275 } 275 }
276 else if (uriParts[2] == "add") { 276 else if (uriParts[2] == "add") {
277 linkContent = "<img src=\"chrome://foxri/content/skype_add_large.png\" alt=\"Add " + uriParts[1] + " to Skype\"/>"; 277 linkContent = "<img src=\"chrome://foxri/content/skype_add_large.png\" alt=\"Add " + uriParts[1] + " to Skype\"/>";
278 } 278 }
279 } 279 }
280 } 280 }
281 else if (uriParts[1] == 'aim') { 281 else if (uriParts[1] == 'aim') {
282 uriParts = uriParts[2].match('^(.*)\\?.*screenname=([^&]*)', 'i'); 282 uriParts = uriParts[2].match('^(.*)\\?.*screenname=([^&]*)', 'i');
283 if (uriParts) { 283 if (uriParts) {
284 linkContent = "<img src=\"chrome://foxri/content/aim_logo.gif\" alt=\"Chat with " + uriParts[2] + "\"/> Chat with " + uriParts[2]; 284 linkContent = "<img src=\"chrome://foxri/content/aim_logo.gif\" alt=\"Chat with " + uriParts[2] + "\"/> Chat with " + uriParts[2];
285 } 285 }
286 } 286 }
287 287
288 html_uris += "<a href=\""+u.nodeValue+"\">" 288 html_uris += "<a href=\""+u.nodeValue+"\">"
289 + linkContent + "</a>"; 289 + linkContent + "</a>";
290 html_uris += "</div>"; 290 html_uris += "</div>";
291 } 291 }
292 292
293 var html = "<div class=\"service srv_" + getServiceClass(knownServiceType) + "\">\n"; 293 var html = "<div class=\"service srv_" + getServiceClass(knownServiceType) + "\">\n";
294 html += html_types; 294 html += html_types;
295 html += html_paths; 295 html += html_paths;
296 html += html_mediatypes; 296 html += html_mediatypes;
297 if (html_uris) { 297 if (html_uris) {
298 html += "<strong>URI(s):</strong><br/>\n"; 298 html += "<strong>URI(s):</strong><br/>\n";
299 html += html_uris; 299 html += html_uris;
300 } 300 }
301 html += "</div>"; 301 html += "</div>";
302 302
303 return html; 303 return html;
304} 304}
305 305
306 306
307 307
308function isKnownServiceType(type) 308function isKnownServiceType(type)
309{ 309{
310 if (type.toLowerCase() in SERVICE_CLASSES) { 310 if (type.toLowerCase() in SERVICE_CLASSES) {
311 return true; 311 return true;
312 } 312 }
313 return false; 313 return false;
314} 314}
315 315
316function getServiceClass(type) 316function getServiceClass(type)
317{ 317{
318 if (isKnownServiceType(type)) { 318 if (type && isKnownServiceType(type)) {
319 return SERVICE_CLASSES[type.toLowerCase()]; 319 return SERVICE_CLASSES[type.toLowerCase()];
320 } 320 }
321 return type; 321 return type;
322} 322}
323 323
324 324
325function guessServiceTypeByURI(uri) 325function guessServiceTypeByURI(uri)
326{ 326{
327 if (uri == null || uri == "") { 327 if (uri == null || uri == "") {
328 return "unknown"; 328 return "unknown";
329 } 329 }
330 if (uri.match(/^https?:/i)) { 330 if (uri.match(/^https?:/i)) {
331 return "www"; 331 return "www";
332 } 332 }
333 else if (uri.match(/^skype:/i)) { 333 else if (uri.match(/^skype:/i)) {
334 return "skype"; 334 return "skype";
335 } 335 }
336 else if (uri.match(/^aim:/i)) { 336 else if (uri.match(/^aim:/i)) {
337 return "aim"; 337 return "aim";
338 } 338 }
339 else if (uri.match(/^xmpp:/i)) { 339 else if (uri.match(/^xmpp:/i)) {
340 return "jabber"; 340 return "jabber";
341 } 341 }
342 else if (uri.match(/^tel:/i)) { 342 else if (uri.match(/^tel:/i)) {
343 return "tel"; 343 return "tel";
344 } 344 }
345 else if (uri.match(/^callto:/i)) { 345 else if (uri.match(/^callto:/i)) {
346 return "callto"; 346 return "callto";
347 } 347 }
348 else if (uri.match(/^telnet:/i)) { 348 else if (uri.match(/^telnet:/i)) {
349 return "telnet"; 349 return "telnet";
350 } 350 }
351 else if (uri.match(/^news:/i)) { 351 else if (uri.match(/^news:/i)) {
352 return "news"; 352 return "news";
353 } 353 }
354 else if (uri.match(/^nntp:/i)) { 354 else if (uri.match(/^nntp:/i)) {
355 return "nntp"; 355 return "nntp";
356 } 356 }
357 else if (uri.match(/^ftp:/i)) { 357 else if (uri.match(/^ftp:/i)) {
358 return "ftp"; 358 return "ftp";
359 } 359 }
360 else if (uri.match(/^mailto:/i)) { 360 else if (uri.match(/^mailto:/i)) {
361 return "email"; 361 return "email";
362 } 362 }
363 else if (uri.match(/^urn:/i)) { 363 else if (uri.match(/^urn:/i)) {
364 return "urn"; 364 return "urn";
365 } 365 }
366 else if (uri.match(/^data:/i)) { 366 else if (uri.match(/^data:/i)) {
367 return "data"; 367 return "data";
368 } 368 }
369 else if (uri.match(/^feed:/i)) { 369 else if (uri.match(/^feed:/i)) {
370 return "feed"; 370 return "feed";
371 } 371 }
372 return "unknown"; 372 return "unknown";
373} 373}
374 374
375 375
376function guessServiceTypeByMime(mimeType) 376function guessServiceTypeByMime(mimeType)
377{ 377{
378 if (mimeType.match(/^application\/(rss|atom)\+xml/i)) { 378 if (mimeType.match(/^application\/(rss|atom)\+xml/i)) {
379 dump("feed detected!\n"); 379 dump("feed detected!\n");
380 return "feed"; 380 return "feed";
381 } 381 }
382 else if (mimeType.match(/^image\//i)) { 382 else if (mimeType.match(/^image\//i)) {
383 return "image"; 383 return "image";
384 } 384 }
385 return null; 385 return null;
386} 386}
387 387
388 388
389 389
390function friendlyServiceName(srvType, uri) 390function friendlyServiceName(srvType, uri)
391{ 391{
392 if (srvType && srvType == "xri://+i-service*(+contact)*($v*1.0)") { 392 if (srvType && srvType == "xri://+i-service*(+contact)*($v*1.0)") {
393 return "Contact Service"; 393 return "Contact Service";
394 } 394 }
395 else if (srvType && srvType == "http://openid.net/signon/1.0") { 395 else if (srvType && srvType == "http://openid.net/signon/1.0") {
396 return "OpenID Authentication Service"; 396 return "OpenID Authentication Service";
397 } 397 }
398 else if (srvType && srvType == "xri://$res*auth*($v*2.0)") { 398 else if (srvType && srvType == "xri://$res*auth*($v*2.0)") {
399 return "Authority Resolution Service"; 399 return "Authority Resolution Service";
400 } 400 }
401 else { 401 else {
402 if (uri == null) { 402 if (uri == null) {
403 return "Generic Service"; 403 return "Generic Service";
404 } 404 }
405 if (uri.match(/^https?:/i)) { 405 if (uri.match(/^https?:/i)) {
406 return "Web Link"; 406 return "Web Link";
407 } 407 }
408 else if (uri.match(/^skype:/i)) { 408 else if (uri.match(/^skype:/i)) {
409 var user = uri.substring("skype:".length, uri.indexOf('?')); 409 var user = uri.substring("skype:".length, uri.indexOf('?'));
410 return "Skype <a href=\"" + uri + "\"><img src=\"chrome://foxri/content/skype_call.png\"></a>"; 410 return "Skype <a href=\"" + uri + "\"><img src=\"chrome://foxri/content/skype_call.png\"></a>";
411 } 411 }
412 else if (uri.match(/^mailto:/i)) { 412 else if (uri.match(/^mailto:/i)) {
413 var qmark = uri.indexOf('?'); 413 var qmark = uri.indexOf('?');
414 var email = (qmark == -1)? 414 var email = (qmark == -1)?
@@ -704,229 +704,227 @@ XRIChannel.prototype = {
704 dump("nsIInputStream::isNonBlocking called\n"); 704 dump("nsIInputStream::isNonBlocking called\n");
705 return true; 705 return true;
706 }, 706 },
707 707
708 read: function() { dump("nsIInputStream::read() called!!!\n"); }, 708 read: function() { dump("nsIInputStream::read() called!!!\n"); },
709 709
710 710
711 711
712 712
713 713
714/* public fields (nsIRequest implmentation) */ 714/* public fields (nsIRequest implmentation) */
715 715
716 loadFlags: 0, 716 loadFlags: 0,
717 717
718 loadGroup: null, 718 loadGroup: null,
719 719
720 name: "xri://request", 720 name: "xri://request",
721 721
722 status: 0, 722 status: 0,
723 723
724 cancel: function(status) { dump("\ncancel called...\n"); }, 724 cancel: function(status) { dump("\ncancel called...\n"); },
725 725
726 isPending: function() { 726 isPending: function() {
727 dump("isPending called\n\n"); 727 dump("isPending called\n\n");
728 return !this.loadDone; 728 return !this.loadDone;
729 }, 729 },
730 730
731 resume: function() { dump("resume called\n"); }, 731 resume: function() { dump("resume called\n"); },
732 732
733 suspend: function() { dump("suspend called\n"); }, 733 suspend: function() { dump("suspend called\n"); },
734 734
735 735
736 736
737/* public fields (nsIChannel implmentation) */ 737/* public fields (nsIChannel implmentation) */
738 738
739 contentCharset: null, 739 contentCharset: null,
740 740
741 contentLength: -1, 741 contentLength: -1,
742 742
743 contentType: null, 743 contentType: null,
744 744
745 notificationCallbacks: null, 745 notificationCallbacks: null,
746 746
747 originalURI: null, 747 originalURI: null,
748 748
749 owner: null, 749 owner: null,
750 750
751 securityInfo: null, 751 securityInfo: null,
752 752
753 URI: null, 753 URI: null,
754 754
755 open: function() 755 open: function()
756 { 756 {
757 dump("open not supporteD!!!!!!\n"); 757 dump("open not supporteD!!!!!!\n");
758 }, 758 },
759 759
760 asyncOpen: function(listener, context) 760 asyncOpen: function(listener, context)
761 { 761 {
762 dump("asyncOpen called!!!!!!\n"); 762 dump("asyncOpen called!!!!!!\n");
763 this.asyncOpenListener = listener; 763 this.asyncOpenListener = listener;
764 this.asyncOpenContext = context; 764 this.asyncOpenContext = context;
765 765
766 var hxri = PROXY_URI + this.qxri 766 var hxri = PROXY_URI + this.qxri
767 + "?_xrd_r=application/xrds%2Bxml;sep=false"; 767 + "?_xrd_r=application/xrds%2Bxml;sep=false";
768 var ioService = Components.classesByID[kIOSERVICE_CID_STR].getService(); 768 var ioService = Components.classesByID[kIOSERVICE_CID_STR].getService();
769 ioService = ioService.QueryInterface(nsIIOService); 769 ioService = ioService.QueryInterface(nsIIOService);
770 var channel = ioService.newChannel(hxri, null, null); 770 var channel = ioService.newChannel(hxri, null, null);
771 771
772 if (this.scriptableInStream) { 772 if (this.scriptableInStream) {
773 dump("Hey! You can't possibly be reusing this handler?!\n"); 773 dump("Hey! You can't possibly be reusing this handler?!\n");
774 return; 774 return;
775 } 775 }
776 776
777 dump("making scriptableInStream\n"); 777 dump("making scriptableInStream\n");
778 this.scriptableInStream = Components.classes["@mozilla.org/scriptableinputstream;1"] 778 this.scriptableInStream = Components.classes["@mozilla.org/scriptableinputstream;1"]
779 .createInstance(Components.interfaces.nsIScriptableInputStream); 779 .createInstance(Components.interfaces.nsIScriptableInputStream);
780 780
781 this.buf = ''; 781 this.buf = '';
782 782
783 dump("notificationCallbacks = " + this.notificationCallbacks + "\n"); 783 dump("notificationCallbacks = " + this.notificationCallbacks + "\n");
784 dump("loadFlags = " + this.loadFlags + "\n"); 784 dump("loadFlags = " + this.loadFlags + "\n");
785 dump("loadGroup = " + this.loadGroup + "\n"); 785 dump("loadGroup = " + this.loadGroup + "\n");
786 dump("owner = " + this.owner + "\n"); 786 dump("owner = " + this.owner + "\n");
787 dump("securityInfo = " + this.securityInfo + "\n"); 787 dump("securityInfo = " + this.securityInfo + "\n");
788 788
789 // these nsIRequest attributes must be copied to the stub 789 // these nsIRequest attributes must be copied to the stub
790 // channel that we created 790 // channel that we created
791 channel.notificationCallbacks = this.notificationCallbacks; 791 channel.notificationCallbacks = this.notificationCallbacks;
792 channel.loadGroup = this.loadGroup; 792 channel.loadGroup = this.loadGroup;
793 channel.loadFlags = this.loadFlags; 793 channel.loadFlags = this.loadFlags;
794 794
795 this.mChannel = channel; 795 this.mChannel = channel;
796 channel.asyncOpen(this, null); 796 channel.asyncOpen(this, null);
797 }, 797 },
798 798
799 799
800/* public fields (nsIChannel implmentation) */ 800/* public fields (nsIChannel implementation) */
801 allowPipelining: false, 801 allowPipelining: false,
802 redirectionLimit: 5, 802 redirectionLimit: 5,
803 referrer: "", 803 referrer: "",
804 requestMethod: "GET", 804 requestMethod: "GET",
805 requestSucceeded: true, 805 requestSucceeded: true,
806 responseStatus: 200, 806 responseStatus: 200,
807 responseStatusText: "OK", 807 responseStatusText: "OK",
808 getRequestHeader: function(header) { 808 getRequestHeader: function(header) {
809 dump("getRequestHeader(" + header + ")\n"); 809 dump("getRequestHeader(" + header + ")\n");
810 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel); 810 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel);
811 811
812 try { 812 try {
813 var val = httpChannel.getRequestHeader(header); 813 var val = httpChannel.getRequestHeader(header);
814 dump("getRequestHeader(" + header + ") = " + val + "\n"); 814 dump("getRequestHeader(" + header + ") = " + val + "\n");
815 return val; 815 return val;
816 } 816 }
817 catch (e) { 817 catch (e) {
818 dump("getRequestHeader - got exception: " + e + "\n");
818 throw e; 819 throw e;
819 } 820 }
820 }, 821 },
821 getResponseHeader: function(header) { 822 getResponseHeader: function(header) {
822 dump("getResponseHeader(" + header + ")\n"); 823 dump("getResponseHeader(" + header + ")\n");
823 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel); 824 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel);
824 825
825 try { 826 try {
826 var val = httpChannel.getResponseHeader(header); 827 var val = httpChannel.getResponseHeader(header);
827 dump("getResponseHeader(" + header + ") = " + val + "\n"); 828 dump("getResponseHeader(" + header + ") = " + val + "\n");
828 return val; 829 return val;
829 } 830 }
830 catch (e) { 831 catch (e) {
832 dump("getResponseHeader - got exception: " + e + "\n");
831 throw e; 833 throw e;
832 } 834 }
833/* XXX
834 if (header == "Content-Type")
835 return "text/html";
836*/
837 return null; 835 return null;
838 }, 836 },
839 isNoCacheResponse: function() { 837 isNoCacheResponse: function() {
840 dump("isNoCacheResponse()\n"); 838 dump("isNoCacheResponse()\n");
841 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel); 839 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel);
842 return httpChannel.isNoCacheResponse(); 840 return httpChannel.isNoCacheResponse();
843 }, 841 },
844 isNoStoreResponse: function() { 842 isNoStoreResponse: function() {
845 dump("isNoStoreResponse()\n"); 843 dump("isNoStoreResponse()\n");
846 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel); 844 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel);
847 return httpChannel.isNoStoreResponse(); 845 return httpChannel.isNoStoreResponse();
848 return true; 846 return true;
849 }, 847 },
850 setRequestHeader: function(header, value, merge) { 848 setRequestHeader: function(header, value, merge) {
851 dump("setRequestHeader(" + header + ", " + value + ")\n"); 849 dump("setRequestHeader(" + header + ", " + value + ")\n");
852 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel); 850 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel);
853 return httpChannel.setRequestHeader(header, value, merge); 851 return httpChannel.setRequestHeader(header, value, merge);
854 }, 852 },
855 setResponseHeader: function(header, value, merge) { 853 setResponseHeader: function(header, value, merge) {
856 dump("setResponseHeader(" + header + ", " + value + ")\n"); 854 dump("setResponseHeader(" + header + ", " + value + ")\n");
857 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel); 855 var httpChannel = this.mChannel.QueryInterface(nsIHttpChannel);
858 return httpChannel.setResponseHeader(header, value, merge); 856 return httpChannel.setResponseHeader(header, value, merge);
859 }, 857 },
860 visitRequestHeaders: function(visitor) { 858 visitRequestHeaders: function(visitor) {
861 dump("visitRequestHeaders()\n"); 859 dump("visitRequestHeaders()\n");
862 }, 860 },
863 visitResponseHeaders: function(visitor) { 861 visitResponseHeaders: function(visitor) {
864 dump("visitResponseHeaders()\n"); 862 dump("visitResponseHeaders()\n");
865 }, 863 },
866 864
867 QueryInterface: function(iid) 865 QueryInterface: function(iid)
868 { 866 {
869 dump("QI.. \n"); 867 dump("QI.. \n");
870 if (iid.equals(nsIChannel)) 868 if (iid.equals(nsIChannel))
871 dump("QI(nsIChannel)\n"); 869 dump("QI(nsIChannel)\n");
872 else if (iid.equals(nsIHttpChannel)) 870 else if (iid.equals(nsIHttpChannel))
873 dump("QI(nsIHttpChannel)\n"); 871 dump("QI(nsIHttpChannel)\n");
874 else if (iid.equals(Components.interfaces.nsIUploadChannel)) 872 else if (iid.equals(Components.interfaces.nsIUploadChannel))
875 dump("QI(nsIUploadChannel) - not supported\n"); 873 dump("QI(nsIUploadChannel) - not supported\n");
876 else if (iid.equals(Components.interfaces.nsICachingChannel)) 874 else if (iid.equals(Components.interfaces.nsICachingChannel))
877 dump("QI(nsICachingChannel) - not supported\n"); 875 dump("QI(nsICachingChannel) - not supported\n");
878 else if (iid.equals(Components.interfaces.nsIClassInfo)) 876 else if (iid.equals(Components.interfaces.nsIClassInfo))
879 dump("QI(nsIClassInfo) - not supported\n"); 877 dump("QI(nsIClassInfo) - not supported\n");
880 else if (iid.equals(Components.interfaces.nsISecurityCheckedComponent)) 878 else if (iid.equals(Components.interfaces.nsISecurityCheckedComponent))
881 dump("QI(nsISecurityCheckedComponent) - not supported\n"); 879 dump("QI(nsISecurityCheckedComponent) - not supported\n");
882 else if (iid.equals(Components.interfaces.nsIWyciwygChannel)) 880 else if (iid.equals(Components.interfaces.nsIWyciwygChannel))
883 dump("QI(nsIWyciwygChannel) - not supported\n"); 881 dump("QI(nsIWyciwygChannel) - not supported\n");
884 else if (iid.equals(Components.interfaces.nsIMultiPartChannel)) 882 else if (iid.equals(Components.interfaces.nsIMultiPartChannel))
885 dump("QI(nsIMultiPartChannel) - not supported\n"); 883 dump("QI(nsIMultiPartChannel) - not supported\n");
886 else if (iid.equals(Components.interfaces.nsIHttpChannelInternal)) 884 else if (iid.equals(Components.interfaces.nsIHttpChannelInternal))
887 dump("QI(nsIHttpChannelInternal) - not supported\n"); 885 dump("QI(nsIHttpChannelInternal) - not supported\n");
888 else if (iid.equals(Components.interfaces.nsIWritablePropertyBag2)) 886 else if (iid.equals(Components.interfaces.nsIWritablePropertyBag2))
889 dump("QI(nsIWritablePropertyBag2) - not supported\n"); 887 dump("QI(nsIWritablePropertyBag2) - not supported\n");
890 else if (iid.equals(nsIRequest)) 888 else if (iid.equals(nsIRequest))
891 dump("QI(nsIRequest)\n"); 889 dump("QI(nsIRequest)\n");
892 else if (iid.equals(nsIRequestObserver)) 890 else if (iid.equals(nsIRequestObserver))
893 dump("QI(nsIRequestObserver)\n"); 891 dump("QI(nsIRequestObserver)\n");
894 else if (iid.equals(nsISupports)) 892 else if (iid.equals(nsISupports))
895 dump("QI(nsISupports)\n"); 893 dump("QI(nsISupports)\n");
896 else if (iid.equals(nsIStreamListener)) 894 else if (iid.equals(nsIStreamListener))
897 dump("QI(nsIStreamListener)\n"); 895 dump("QI(nsIStreamListener)\n");
898 else 896 else
899 dump("unknown " + iid + "\n"); 897 dump("unknown " + iid + "\n");
900 898
901 if (iid.equals(nsISupports) || 899 if (iid.equals(nsISupports) ||
902 iid.equals(nsIRequest) || 900 iid.equals(nsIRequest) ||
903 iid.equals(nsIRequestObserver) || 901 iid.equals(nsIRequestObserver) ||
904 iid.equals(nsIChannel) || 902 iid.equals(nsIChannel) ||
905 iid.equals(nsIHttpChannel) || 903 iid.equals(nsIHttpChannel) ||
906 iid.equals(nsIStreamListener) 904 iid.equals(nsIStreamListener)
907 ) { 905 ) {
908 return this; 906 return this;
909 } 907 }
910 908
911 throw Components.results.NS_ERROR_NO_INTERFACE; 909 throw Components.results.NS_ERROR_NO_INTERFACE;
912 } 910 }
913}; 911};
914 912
915 913
916 914
917/*********************************************************** 915/***********************************************************
918 XriProtocolHandler class definition 916 XriProtocolHandler class definition
919 ***********************************************************/ 917 ***********************************************************/
920 918
921//class constructor 919//class constructor
922function XriProtocolHandler() { 920function XriProtocolHandler() {
923}; 921};
924 922
925// class definition 923// class definition
926XriProtocolHandler.prototype = { 924XriProtocolHandler.prototype = {
927 defaultPort: 80, // HTTP 925 defaultPort: 80, // HTTP
928 926
929 protocolFlags : nsIProtocolHandler.ALLOWS_PROXY | nsIProtocolHandler.ALLOWS_PROXY_HTTP, 927 protocolFlags : nsIProtocolHandler.ALLOWS_PROXY | nsIProtocolHandler.ALLOWS_PROXY_HTTP,
930 928
931 scheme: "xri", 929 scheme: "xri",
932 930