annotate components/nttMultipartFormData.js @ 0:dada0ac40a8f

initial import
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Tue, 02 Dec 2008 20:31:01 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
1 const Ci = Components.interfaces;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
2 const Cc = Components.classes;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
3 const Cr = Components.results;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
4
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
5 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
6
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
7 function NTT_MakeStream(data)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
8 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
9 var stream = Cc["@mozilla.org/io/string-input-stream;1"]
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
10 .createInstance(Ci.nsIStringInputStream);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
11 stream.setData(data, data.length);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
12 return stream;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
13 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
14
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
15 const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
16
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
17 function NTT_decode64(input)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
18 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
19 var output = "";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
20 var chr1, chr2, chr3;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
21 var enc1, enc2, enc3, enc4;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
22 var i = 0;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
23
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
24 // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
25 input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
26
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
27 do
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
28 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
29 enc1 = keyStr.indexOf(input.charAt(i++));
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
30 enc2 = keyStr.indexOf(input.charAt(i++));
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
31 enc3 = keyStr.indexOf(input.charAt(i++));
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
32 enc4 = keyStr.indexOf(input.charAt(i++));
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
33
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
34 chr1 = (enc1 << 2) | (enc2 >> 4);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
35 chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
36 chr3 = ((enc3 & 3) << 6) | enc4;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
37
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
38 output = output + String.fromCharCode(chr1);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
39
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
40 if (enc3 != 64)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
41 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
42 output = output + String.fromCharCode(chr2);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
43 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
44 if (enc4 != 64)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
45 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
46 output = output + String.fromCharCode(chr3);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
47 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
48 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
49 while (i < input.length);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
50
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
51 return output;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
52 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
53
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
54 function MultipartFormData()
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
55 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
56 this.boundary = "hsdluicmwos";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
57 this.controls = [];
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
58 this.files = [];
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
59 this.postdata = "";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
60 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
61
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
62 MultipartFormData.prototype = {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
63
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
64 boundary: null,
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
65 controls: null,
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
66 files: null,
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
67 length: null,
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
68 postdata: null,
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
69
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
70 getPostData: function()
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
71 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
72 if (this.postdata)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
73 return this.postdata;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
74
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
75 var data = "";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
76
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
77 for (var name in this.controls)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
78 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
79 data+="\r\n--"+this.boundary+"\r\n";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
80 data+="Content-Disposition: form-data; name=\""+name+"\"\r\n\r\n";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
81 data+=this.controls[name];
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
82 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
83
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
84 for (var name in this.files)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
85 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
86 var filedata = this.files[name];
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
87 data+="\r\n--"+this.boundary+"\r\n";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
88 data+="Content-Disposition: form-data; name=\""+name+"\"; filename=\""+filedata.filename+"\"\r\n";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
89 data+="Content-Type: "+filedata.contenttype+"\r\n";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
90 if (filedata.source)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
91 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
92 data+="Content-Transfer-Encoding: base64\r\n\r\n";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
93
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
94 var fis = Cc["@mozilla.org/network/file-input-stream;1"]
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
95 .createInstance(Ci.nsIFileInputStream);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
96 fis.init(filedata.source, 1, 384, Ci.nsIFileInputStream.CLOSE_ON_EOF);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
97
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
98 var bis = Cc["@mozilla.org/binaryinputstream;1"]
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
99 .createInstance(Ci.nsIBinaryInputStream);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
100 bis.setInputStream(fis);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
101
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
102 //TODO this isnt needed as yet
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
103 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
104 else
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
105 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
106 data+="Content-Transfer-Encoding: binary\r\n\r\n";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
107 if (filedata.encoding == "base64")
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
108 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
109 data+=NTT_decode64(filedata.data);
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
110 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
111 else if (filedata.encoding == "binary")
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
112 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
113 data+=filedata.data;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
114 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
115 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
116 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
117 data+="\r\n--"+this.boundary+"--\r\n";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
118
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
119 this.length = data.length-2;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
120 this.postdata = data;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
121
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
122 return data;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
123 },
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
124
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
125 getPostDataStream: function()
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
126 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
127 return NTT_MakeStream(this.getPostData());
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
128 },
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
129
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
130 getHeaders: function()
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
131 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
132 if (!this.length)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
133 this.getPostData();
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
134
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
135 var headers = "";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
136 headers+="Content-Type: "+this.getContentType()+"\r\n";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
137 headers+="Content-Length: "+this.length+"\r\n";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
138 return headers;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
139 },
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
140
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
141 getHeaderStream: function()
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
142 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
143 return NTT_MakeStream(this.getHeaders());
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
144 },
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
145
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
146 getContentType: function()
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
147 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
148 return "multipart/form-data; boundary=\""+this.boundary+"\"";
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
149 },
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
150
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
151 addControl: function(name, value)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
152 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
153 this.controls[name]=value;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
154 this.postdata = null;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
155 this.length = null;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
156 },
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
157
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
158 addFile: function(name, contenttype, file)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
159 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
160 throw Components.results.NS_NOT_IMPLEMENTED;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
161 var filedata = {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
162 filename: file.leafName,
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
163 contenttype: contenttype,
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
164 source: file
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
165 };
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
166 this.files[name] = filedata;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
167 this.postdata = null;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
168 this.length = null;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
169 },
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
170
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
171 addFileData: function(name, filename, contenttype, encoding, data)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
172 {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
173 var filedata = {
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
174 filename: filename,
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
175 contenttype: contenttype,
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
176 encoding: encoding,
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
177 data: data
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
178 };
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
179 this.files[name] = filedata;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
180 this.postdata = null;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
181 this.length = null;
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
182 },
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
183
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
184 classDescription: "Nightly Tester Multipart Form Data",
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
185 contractID: "@blueprintit.co.uk/multipartformdata;1",
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
186 classID: Components.ID("{46c8b0c6-216c-41e8-ace2-03d61783e278}"),
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
187 QueryInterface: XPCOMUtils.generateQI([Ci.nttIMultipartFormData])
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
188 }
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
189
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
190 function NSGetModule(compMgr, fileSpec)
dada0ac40a8f initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
191 XPCOMUtils.generateModule([MultipartFormData]);