src/cm/media/js/lib/yui/yui3-3.15.0/build/io-xdr/io-xdr-debug.js
author ymh <ymh.work@gmail.com>
Thu, 10 Apr 2014 17:30:29 +0200
changeset 630 36ef50b63372
parent 602 e16a97fb364a
permissions -rw-r--r--
update karma config after test lib moves
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('io-xdr', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
Extends IO to provide an alternate, Flash transport, for making
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
cross-domain requests.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
@module io
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
@submodule io-xdr
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
@for IO
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
@deprecated
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
// Helpful resources when working with the mess that is XDomainRequest:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
// http://www.cypressnorth.com/blog/web-programming-and-development/internet-explorer-aborting-ajax-requests-fixed/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
// http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
Fires when the XDR transport is ready for use.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
@event io:xdrReady
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
var E_XDR_READY = Y.publish('io:xdrReady', { fireOnce: true }),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
Map of stored configuration objects when using
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
Flash as the transport for cross-domain requests.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
@property _cB
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
@private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
@type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
_cB = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
Map of transaction simulated readyState values
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
when XDomainRequest is the transport.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
@property _rS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
@private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
@type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
_rS = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
// Document reference
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
d = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
// Window reference
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
w = Y.config.win,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
// XDomainRequest cross-origin request detection
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
xdr = w && w.XDomainRequest;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
Method that creates the Flash transport swf.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
@method _swf
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
@private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
@param {String} uri - location of io.swf.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
@param {String} yid - YUI sandbox id.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
@param {String} uid - IO instance id.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
function _swf(uri, yid, uid) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
    var o = '<object id="io_swf" type="application/x-shockwave-flash" data="' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
            uri + '" width="0" height="0">' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
            '<param name="movie" value="' + uri + '">' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
            '<param name="FlashVars" value="yid=' + yid + '&uid=' + uid + '">' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
            '<param name="allowScriptAccess" value="always">' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
            '</object>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
        c = d.createElement('div');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
    d.body.appendChild(c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
    c.innerHTML = o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
Creates a response object for XDR transactions, for success
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
and failure cases.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
@method _data
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
@private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
@param {Object} o - Transaction object generated by _create() in io-base.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
@param {Boolean} u - Configuration xdr.use.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
@param {Boolean} d - Configuration xdr.dataType.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
@return {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
function _data(o, u, d) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
    if (u === 'flash') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
        o.c.responseText = decodeURI(o.c.responseText);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
    if (d === 'xml') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
        o.c.responseXML = Y.DataType.XML.parse(o.c.responseText);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
    return o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
Method for intiating an XDR transaction abort.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
@method _abort
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
@private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
@param {Object} o - Transaction object generated by _create() in io-base.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
@param {Object} c - configuration object for the transaction.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
function _abort(o, c) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
    return o.c.abort(o.id, c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
Method for determining if an XDR transaction has completed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
and all data are received.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
@method _isInProgress
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
@private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
@param {Object} o - Transaction object generated by _create() in io-base.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
function _isInProgress(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
    return xdr ? _rS[o.id] !== 4 : o.c.isInProgress(o.id);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
Y.mix(Y.IO.prototype, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
    Map of io transports.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
    @property _transport
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
    @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
    @type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
    _transport: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
    Sets event handlers for XDomainRequest transactions.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
    @method _ieEvt
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
    @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
    @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
    @param {Object} o - Transaction object generated by _create() in io-base.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
    @param {Object} c - configuration object for the transaction.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
    _ieEvt: function(o, c) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
        var io = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
            i = o.id,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
            t = 'timeout';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
        o.c.onprogress = function() { _rS[i] = 3; };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
        o.c.onload = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
            _rS[i] = 4;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
            io.xdrResponse('success', o, c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
        o.c.onerror = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
            _rS[i] = 4;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
            io.xdrResponse('failure', o, c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
        o.c.ontimeout = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
            _rS[i] = 4;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
            io.xdrResponse(t, o, c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
        o.c[t] = c[t] || 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
    Method for accessing the transport's interface for making a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
    cross-domain transaction.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
    @method xdr
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
    @param {String} uri - qualified path to transaction resource.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
    @param {Object} o - Transaction object generated by _create() in io-base.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
    @param {Object} c - configuration object for the transaction.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
    xdr: function(uri, o, c) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
        var io = this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
        if (c.xdr.use === 'flash') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
            // The configuration object cannot be serialized safely
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
            // across Flash's ExternalInterface.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
            _cB[o.id] = c;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
            w.setTimeout(function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
                try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
                    o.c.send(uri, { id: o.id,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
                                    uid: o.uid,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
                                    method: c.method,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
                                    data: c.data,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
                                    headers: c.headers });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
                catch(e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
                    io.xdrResponse('transport error', o, c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
                    delete _cB[o.id];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
            }, Y.io.xdr.delay);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
        else if (xdr) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
            io._ieEvt(o, c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
            o.c.open(c.method || 'GET', uri);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
            // Make async to protect against IE 8 oddities.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
            setTimeout(function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
                o.c.send(c.data);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
            }, 0);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
        else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
            o.c.send(uri, o, c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
        return {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
            id: o.id,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
            abort: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
                return o.c ? _abort(o, c) : false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
            isInProgress: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
                return o.c ? _isInProgress(o.id) : false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
            io: io
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
    Response controller for cross-domain requests when using the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
    Flash transport or IE8's XDomainRequest object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
    @method xdrResponse
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
    @param {String} e Event name
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
    @param {Object} o Transaction object generated by _create() in io-base.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
    @param {Object} c Configuration object for the transaction.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
    @return {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
    xdrResponse: function(e, o, c) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
        c = _cB[o.id] ? _cB[o.id] : c;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
        var io = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
            m = xdr ? _rS : _cB,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
            u = c.xdr.use,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
            d = c.xdr.dataType;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
        switch (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
            case 'start':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
                io.start(o, c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
                break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
           //case 'complete':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
                //This case is not used by Flash or XDomainRequest.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
                //io.complete(o, c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
                //break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
            case 'success':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
                io.success(_data(o, u, d), c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   241
                delete m[o.id];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   242
                break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   243
            case 'timeout':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   244
            case 'abort':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   245
            case 'transport error':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   246
                o.c = { status: 0, statusText: e };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   247
            case 'failure':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   248
                io.failure(_data(o, u, d), c);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   249
                delete m[o.id];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   250
                break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   251
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
    Fires event "io:xdrReady"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
    @method _xdrReady
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
    @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
    @param {Number} yid - YUI sandbox id.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
    @param {Number} uid - IO instance id.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
    _xdrReady: function(yid, uid) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
        Y.fire(E_XDR_READY, yid, uid);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
    Initializes the desired transport.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
    @method transport
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
    @param {Object} o - object of transport configurations.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
    transport: function(c) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
        if (c.id === 'flash') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
            _swf(Y.UA.ie ? c.src + '?d=' + new Date().valueOf().toString() : c.src, Y.id, c.uid);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
            Y.IO.transports.flash = function() { return d.getElementById('io_swf'); };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
Fires event "io:xdrReady"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   283
@method xdrReady
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   284
@protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   285
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   286
@param {Number} yid - YUI sandbox id.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   287
@param {Number} uid - IO instance id.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   288
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   289
Y.io.xdrReady = function(yid, uid){
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   290
    var io = Y.io._map[uid];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   291
    Y.io.xdr.delay = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   292
    io._xdrReady.apply(io, [yid, uid]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   293
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   294
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   295
Y.io.xdrResponse = function(e, o, c){
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   296
    var io = Y.io._map[o.uid];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   297
    io.xdrResponse.apply(io, [e, o, c]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   298
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   299
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   300
Y.io.transport = function(c){
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   301
    var io = Y.io._map['io:0'] || new Y.IO();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   302
    c.uid = io._uid;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   303
    io.transport.apply(io, [c]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   304
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   305
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   306
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   307
Delay value to calling the Flash transport, in the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   308
event io.swf has not finished loading.  Once the E_XDR_READY
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   309
event is fired, this value will be set to 0.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   310
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   311
@property delay
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   312
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   313
@type {Number}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   314
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   315
Y.io.xdr = { delay : 100 };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   316
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   317
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   318
}, '@VERSION@', {"requires": ["io-base", "datatype-xml-parse"]});