Merge commit 'catalyst/MOODLE_19_STABLE' into mdl19-linuxchix
[moodle-linuxchix.git] / lib / yui / connection / README
blobeb943f93f4d94c08b82b921526b96e2b00617def
1 Connection Manager Release Notes
3 *** version 2.5.2 ***
5 * In file upload transactions, in Safari 3.x, fail to send the file data.  This
6 is due to Safari evaluating the condition statement "if(formObject.encoding){}"
7 as true.  This results in the incorrect attribute being set, the correct
8 attribute being "enctype."  The conditional check now explicitly verifies for
9 IE, before setting the appropriate attribute.
11 * NOTE: File uploads using setForm() do not function as expected in Opera
12 9.27.  The file and data upload phase works as expected, however the server
13 response cannot be read.  Specifically, "onload" for an iframe is triggered when
14 the iframe is appended into the DOM.  This results in the upload callback being
15 fired immediately, before the transaction is complete, and before the response
16 data are available.
18 This condition is documented in Opera's bug tracking system: 295719 and appears
19 to have been fixed as of Opera 9.50 b2.
21 *** version 2.5.1 ***
23 * no changes.
25 *** version 2.5.0 ***
27 * setForm() can now detects HTTPS in the URI for file upload transactions.  The
28 third, boolean argument for HTTPS when using IE is no longer necessary.
30 * [FIXED] SF1882101.  POST transactions without a message will now have a
31 Content-Length value set to 0 for FF 2.x.  This is accomplished by passing a
32 value of empty string instead of null to XHR's send().  All other A-Grade
33 browsers remain unaffected and perform correctly.
35 *** version 2.4.0 ***
37 * [FIXED] SF1804153.  Transactions initialized with setForm() now properly clear
38 the POST data field after each transaction.
40 * The callback object can accept a new member, cache, defined with a boolean
41 value.  If set to false (e.g., var callback = { cache:false };), a timestamp
42 will be appended to the URI to override HTTP GET caching.  This timestamp value
43 will appear as rnd=timestamp in the request querystring.
45 * Custom Events startEvent, completeEvent, and abortEvent now receive
46 callback.argument, if defined, in addition to the transaction ID.  Each Custom
47 Event's function handler receives two arguments -- the event type as the first
48 argument, and an array as the second argument.  The first element in the array
49 is the transaction ID, and the second element are any arguments defined in the
50 callback object.
52 *** version 2.3.1 ***
54 * setDefaultPostHeader() can now be overloaded with a boolean, string, or
55 number.  By default, POST transactions send the following Content-Type header:
56 'application/x-www-form-urlencoded; charset=UTF-8'.
58 A custom Content-Type header can now be set by passing its value to
59 setDefaultPostHeader().
61 * HTML form submissions now send a Content-Type header of "application/x-www-
62 form-urlencoded", omitting the charset=UTF-8 value.
64 * setDefaultXhrHeader() can now be overloaded with a boolean, string, or number.
65 By default, all transactions send a custom header of "X-Requested-
66 With:XMLHttpRequest".
68 This default header value can be overridden by passing the desired value as an
69 argument to setDefaultPostHeader().
71 * The file upload iframe's event listener is now explicitly removed before the
72 iframe is destroyed.
74 *** version 2.3.0 ***
76 * Custom Events are introduced in Connection Manager.  These events -- for a
77 non-file upload transaction -- are:
79    * startEvent
80    * completeEvent
81    * successEvent
82    * failureEvent
83    * abortEvent
85 For transactions involving file upload with an HTML form, the events are:
87    * startEvent
88    * completeEvent
89    * uploadEvent
90    * abortEvent
92 * Event utility is a now Connection Manager dependency.
94 * abort() and isCallInProgress() are now functional for file upload
95 transactions.
97 * NOTE: The native XHR implementation in Safari 2.0.4 has been confirmed to leak
98 memory.
100 * UPDATE: The XHR implementation in Safari 3.0 beta(and WebKit builds) now
101 appear to handle HTTP 204 responses correctly.  XHR in Opera, as of 9.21, still
102 does not produce a valid HTTP status code with an HTTP 204 response.
104 *** version 2.2.2 ***
106 * No revisions.
108 *** version 2.2.1 ***
110 * setForm() will include the correct name-value of the HTML Submit button
111 clicked where multiple HTML Submit button options are present in an HTML form.
112 To enable this feature, include the Event utility source file as a dependency
113 before the Connection Manager source file.
115 * The XHR implementation in IE6 and IE7, Opera, and Safari do not properly
116 handle an HTTP 204 response.  IE6/7 will instead return a Win error 1223.
117 handleTransactionResponse() will treat 1223 as an HTTP 204, and route the
118 response appropriately to the success callback.  createResponseObject() will
119 normalize the response object's status and statusText values to 204 and "No
120 Content" respectively.  However, no headers are returned.
122 Opera and Safari provide no discernable response with HTTP 204(e.g., response
123 object's properties are undefined).  This response will trigger the failure
124 callback with a status of 0 and statusText of "communication failure".
126 *** version 2.2.0 ***
128 * initHeader() now accepts a third argument as a boolean.  When set to true,
129 this specific header will automatically be sent with each transaction.
130 Otherwise, the header will be set and sent for the specific transaction only.
131 Example: initHeader('X-YUI-State','Beta', true); all transactions will send this
132 header.
133    * resetDefaultHeaders() will clear the default headers collection.
135 * All Connection Mananger transactions will broadcast the header: "X-Requested-
136 With: XMLHttpRequest".
137    * This can be turned off: YAHOO.util.Connect.setDefaultXhrHeader(false);
139 * The HTTP method argument in asyncRequest is now case-insensitive.
141 * uploadFile() will now correctly handle the absence of a callback object,
142 allowing the transaction to complete silently.
144 *** version 0.12.2 ***
146 * The Opera/Connection Manager concurrent object condition, described in version
147 0.12.0, no longer tests applies for Opera, version 9.10.
149 *** version 0.12.1 ***
151 * connection-debug.js corrected and synchronized with connection.js.  Code
152 inconsistencies between the two files existed in 0.12.0.
154 *** version 0.12.0 ***
156 * When uploading files via setForm() and asyncRequest includes a POST data
157 argument, appendPostData() will create hidden input fields for each postData
158 label/value and append each field to the form object.
160 * setForm() returns the assembled label/value string of the parsed HTML form
161 fields.
163 * NOTE: Opera 9.02 does not allow for more than 12 concurrent Connection Manager
164 objects.
166 The following example creates 12 requests in a loop:
167 for(var n=0; n<=12; i++){
168   conn[n] = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
171 If n > 13, Opera 9.02 will crash.  Connection manager objects count n must be <=
172 12 at all times.  This condition was not present in Opera version 9.01.
174 This condition does not apply to other A-Grade browsers (
175 http://developer.yahoo.com/yui/articles/gbs/gbs_browser-chart.html)
177 *** version 0.11.3 ***
179 * YUI Event dependency for file uploading is now optional.
181 * uploadFile() now sets unique IDs for each file upload transaction to prevent
182 iframe collisions with parallel uploads.
184 * The callback object now has property responseXML to provide support for file
185 upload transactions that return an XML document.
187 * setForm() will verify if a select option value attribute is present and use
188 its value, including empty string, before using the text node value.
190 * Modified polling mechanism in handleReadyState() and
191 handleTransactionResponse() to prevent infinite polling if JavaScript errors
192 occur in the user-defined callback.
194 * createFrame() will now accept a boolean argument of true to set the frame
195 source to "javascript:false" to prevent IE from throwing security warnings in an
196 HTTPS environment.
198 * setHeader() now enumerates through the _http_header object using
199 hasOwnProperty() to prevent collisions with members added to Object via
200 prototype.
202 * If using setForm() and asyncRequest includes a POST data argument, the data
203 will be concatenated to the HTML form POST message.
205 *** version 0.11.2 ***
207 * No revisions.
209 *** version 0.11.1 ***
211 * uploadFile() now verifies the existence of callback.upload before invoking
212 callback, with or without object scope.
214 *** version 0.11.0 ***
216 * Each transaction can be defined with a timeout threshold, in milliseconds,
217 through the callback object.  If the threshold is reached, and the transaction
218 hasn't yet completed, the transaction will call abort().
220 * abort() will now accept a callback object as the second argument.  The
221 failure callback will receive a response object to indicate the transaction was
222 aborted.
224 * setForm() will now support file uploads by setting the second argument to
225 true (e.g., YAHOO.util.Connect.setForm(formObject, true).  File upload does not
226 use the callback success or failure handler.  Instead, it uses a new callback
227 object handler: upload.
229 * HTML form submit will no longer submit form fields without a defined name
230 attribute.
232 * The default POST header of 'Content-Type','application/x-www-form-urlencoded'
233 can be overridden by calling setDefaultPostHeader(false).  This
234 will remove the default header from non-HTML form, POST submissions.
236 * setHeader() now enumerates through the _http_header object with
237 propertyIsEnumerable to prevent collisions with members added to Object via
238 prototype.
240 *** version 0.10.0 ***
242 * handleTransactionResponse() now treats the full HTTP 2xx range as a success
243 case, instead of just HTTP 200.
245 * To accommodate multiple field values in Mozilla/Firefox, multiple initHeader
246 calls with the same label will now result in the values concatenated to a
247 comma- delimited string value.
248 Example:
249 Setting Content-Type:'application/x-www-form-urlencoded' and Content-
250 Type:'text/xml' will result in Content-Type:'application/x-www-form-urlencoded,
251 text/xml'.
253 * Default polling interval lowered to 50ms.
255 * YAHOO.util.Connect.setPollingInterval() will allow you to set a polling
256 interval -- in milliseconds -- to override the default value.
258 * YAHOO.util.Connect.getResponseHeader[headerLabel] now supported as a response
259 object property to provide symmetry with the native XHR object's property.
260 Example:
261 YAHOO.util.Connect.getResponseHeader['Content-Length'] will return the value
262 for the Content-Length header, if the header is available.
264 * YAHOO.util.Connect.allResponseHeaders property renamed to
265 getAllResponseHeaders to provide symmetry with the native XHR object's
266 property.
268 * YAHOO.util.Connect.setForm() now supports HTTP GET as well as HTTP POST.
270 * YAHOO.util.Connect.setForm() now accepts an HTML form object as well as its
271 name attribute value.
273 * YAHOO.util.Connect.setForm() will not submit HTML form fields that are
274 disabled or do not have a name attribute value.
276 * [FIXED] Response exceptions result in infinite callback loop in
277 Mozilla/Firefox.
279 * [FIXED] YAHOO.util.Connect.abort() now properly clears polling interval.
281 * [FIXED] isCallInProgress() now verifies whether XHR instance still exists,
282 and returns false if the connection object is no longer available.
284 *** version 0.9.0 ***
286 * Initial release