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