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
@@ -270,97 +270,97 @@ function renderService(srv, doc, qxri)
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)) {
@@ -752,133 +752,131 @@ XRIChannel.prototype = {
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))