');
-
+
data.api = false;
data.actionQueue = [];
box = data.shadowElem;
@@ -1078,7 +1066,7 @@
value: elem
},
currentSrc: {
- value: canPlaySrc.srcProp
+ value: streamRequest ? '' : canPlaySrc.srcProp
},
swfCreated: {
value: true
@@ -1106,26 +1094,27 @@
}
}
}));
-
-
-
+
+
+
box.insertBefore(elem);
-
+
if(hasNative){
$.extend(data, {volume: $.prop(elem, 'volume'), muted: $.prop(elem, 'muted'), paused: $.prop(elem, 'paused')});
}
-
+
webshims.addShadowDom(elem, box);
if(!webshims.data(elem, 'mediaelement')){
webshims.data(elem, 'mediaelement', data);
}
addMediaToStopEvents(elem);
-
+
mediaelement.setActive(elem, 'third', data);
-
+
setElementDimension(data, hasControls);
-
+
$(elem)
+
.on({
'updatemediaelementdimensions loadedmetadata emptied': setDimension,
'remove': function(e){
@@ -1139,14 +1128,13 @@
.onWSOff('updateshadowdom', setDimension)
;
}
-
+
if(mediaelement.jarisEvent[data.id] && mediaelement.jarisEvent[data.id].elem != elem){
webshims.error('something went wrong');
return;
} else if(!mediaelement.jarisEvent[data.id]){
-
+
mediaelement.jarisEvent[data.id] = function(jaris){
-
if(jaris.type == 'ready'){
var onReady = function(){
if(data.api){
@@ -1171,11 +1159,11 @@
if(!data._calledMeta && isNaN(jaris.duration) && data.duration != jaris.duration && isNaN(data.duration)){
onEvent.onDataInitialized(jaris, data);
}
-
+
if(!data._ppFlag && jaris.type != 'onPlayPause'){
onEvent.onPlayPause(jaris, data);
}
-
+
if(onEvent[jaris.type]){
onEvent[jaris.type](jaris, data);
}
@@ -1185,29 +1173,68 @@
};
mediaelement.jarisEvent[data.id].elem = elem;
}
-
- $.extend(vars,
+
+ createSwf(elem, canPlaySrc, data, elemId, hasControls, elemNodeName);
+
+ if(!streamRequest){
+ trigger(data._elem, 'loadstart');
+ }
+ };
+
+ var createSwf = function(elem, canPlaySrc, data, elemId, hasControls, elemNodeName){
+ var vars, elemVars, params, attrs;
+ var isRtmp = canPlaySrc.type == 'audio/rtmp' || canPlaySrc.type == 'video/rtmp';
+ var isUserStream = canPlaySrc.type == 'jarisplayer/stream';
+
+ vars = $.extend({}, options.vars, {
+ poster: replaceVar($.attr(elem, 'poster') && $.prop(elem, 'poster') || ''),
+ source: replaceVar(canPlaySrc.streamId || canPlaySrc.srcProp),
+ server: replaceVar(canPlaySrc.server || '')
+ });
+
+ elemVars = $(elem).data('vars') || {};
+
+ $.extend(vars,
{
id: elemId,
evtId: data.id,
- controls: ''+hasControls,
+ controls: ''+(!isUserStream && hasControls),
autostart: 'false',
nodename: elemNodeName
},
elemVars
);
-
+
if(isRtmp){
vars.streamtype = 'rtmp';
+ } else if(isUserStream){
+ vars.streamtype = 'usermedia';
} else if(canPlaySrc.type == 'audio/mpeg' || canPlaySrc.type == 'audio/mp3'){
vars.type = 'audio';
vars.streamtype = 'file';
} else if(canPlaySrc.type == 'video/youtube'){
vars.streamtype = 'youtube';
}
+
+ attrs = $.extend(
+ {},
+ options.attrs,
+ {
+ name: elemId,
+ id: elemId
+ },
+ $(elem).data('attrs')
+ );
+
+ params = $.extend(
+ {},
+ options.params,
+ $(elem).data('params')
+ );
+
options.changeSWF(vars, elem, canPlaySrc, data, 'embed');
clearTimeout(data.flashBlock);
-
+
swfmini.embedSWF(playerSwfPath, elemId, "100%", "100%", "9.0.115", false, vars, params, attrs, function(swfData){
if(swfData.success){
var fBlocker = function(){
@@ -1219,13 +1246,13 @@
$(swfData.ref).css({'minHeight': '2px', 'minWidth': '2px', display: 'block'});
};
data.api = swfData.ref;
-
+
if(!hasControls){
$(swfData.ref).attr('tabindex', '-1').css('outline', 'none');
}
-
+
data.flashBlock = setTimeout(fBlocker, 99);
-
+
if(!localConnectionTimer){
clearTimeout(localConnectionTimer);
localConnectionTimer = setTimeout(function(){
@@ -1239,23 +1266,24 @@
flash = null;
}, 8000);
}
+ if(isUserStream){
+ webshim.usermedia.request(elem, canPlaySrc, data);
+ }
}
});
-
- trigger(data._elem, 'loadstart');
};
-
-
+
+
var queueSwfMethod = function(elem, fn, args, data){
data = data || getSwfDataFromElem(elem);
-
+
if(data){
if(data.api && data.api[fn]){
data.api[fn].apply(data.api, args || []);
} else {
//todo add to queue
data.actionQueue.push({fn: fn, args: args});
-
+
if(data.actionQueue.length > 10){
setTimeout(function(){
if(data.actionQueue.length > 5){
@@ -1268,13 +1296,14 @@
}
return false;
};
-
+ mediaelement.queueSwfMethod = queueSwfMethod;
+
['audio', 'video'].forEach(function(nodeName){
var descs = {};
var mediaSup;
var createGetProp = function(key){
if(nodeName == 'audio' && (key == 'videoHeight' || key == 'videoWidth')){return;}
-
+
descs[key] = {
get: function(){
var data = getSwfDataFromElem(this);
@@ -1294,33 +1323,33 @@
delete descs[key].writeable;
descs[key].set = setFn;
};
-
+
createGetSetProp('seeking');
-
+
createGetSetProp('volume', function(v){
var data = getSwfDataFromElem(this);
if(data){
v *= 1;
if(!isNaN(v)){
-
+
if(v < 0 || v > 1){
webshims.error('volume greater or less than allowed '+ (v / 100));
}
-
+
queueSwfMethod(this, 'api_volume', [v], data);
-
-
+
+
if(data.volume != v){
data.volume = v;
trigger(data._elem, 'volumechange');
}
data = null;
- }
+ }
} else if(mediaSup.volume.prop._supset) {
return mediaSup.volume.prop._supset.apply(this, arguments);
}
});
-
+
createGetSetProp('muted', function(m){
var data = getSwfDataFromElem(this);
if(data){
@@ -1335,8 +1364,8 @@
return mediaSup.muted.prop._supset.apply(this, arguments);
}
});
-
-
+
+
createGetSetProp('currentTime', function(t){
var data = getSwfDataFromElem(this);
if(data){
@@ -1344,23 +1373,23 @@
if (!isNaN(t)) {
queueSwfMethod(this, 'api_seek', [t], data);
}
-
+
} else if(mediaSup.currentTime.prop._supset) {
return mediaSup.currentTime.prop._supset.apply(this, arguments);
}
});
-
+
['play', 'pause'].forEach(function(fn){
descs[fn] = {
value: function(){
var data = getSwfDataFromElem(this);
-
+
if(data){
if(data.stopPlayPause){
clearTimeout(data.stopPlayPause);
}
queueSwfMethod(this, fn == 'play' ? 'api_play' : 'api_pause', [], data);
-
+
data._ppFlag = true;
if(data.paused != (fn != 'play')){
data.paused = fn != 'play';
@@ -1372,14 +1401,14 @@
}
};
});
-
+
getPropKeys.forEach(createGetProp);
-
+
webshims.onNodeNamesPropertyModify(nodeName, 'controls', function(val, boolProp){
var data = getSwfDataFromElem(this);
-
+
$(this)[boolProp ? 'addClass' : 'removeClass']('webshims-controls');
-
+
if(data){
if(nodeName == 'audio'){
setElementDimension(data, boolProp);
@@ -1387,12 +1416,12 @@
queueSwfMethod(this, 'api_controls', [boolProp], data);
}
});
-
-
+
+
webshims.onNodeNamesPropertyModify(nodeName, 'preload', function(val){
var data, baseData, elem;
-
-
+
+
if(bufferSrc(this)){
data = getSwfDataFromElem(this);
if(data){
@@ -1407,9 +1436,9 @@
}
}
});
-
+
mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
-
+
if(!support.mediaDefaultMuted){
webshims.defineNodeNameProperties(nodeName, {
defaultMuted: {
@@ -1427,8 +1456,68 @@
}, 'prop');
}
});
-
-
+
+ var addCanvasBridge = function(){
+ if(!window.CanvasRenderingContext2D){
+ return false;
+ }
+ var _drawImage = CanvasRenderingContext2D.prototype.drawImage;
+ var slice = Array.prototype.slice;
+ var isVideo = {
+ video: 1,
+ VIDEO: 1
+ };
+ var tested = {};
+
+ if(!_drawImage){
+ webshim.error('canvas.drawImage feature is needed. In IE8 flashvanvas pro can be used');
+ }
+
+ CanvasRenderingContext2D.prototype.drawImage = function(elem){
+ var data, img, args, imgData;
+ var context = this;
+
+ if(isVideo[elem.nodeName] && (data = webshims.data(elem, 'mediaelement')) && data.isActive == 'third' && data.api.api_image){
+
+ try {
+ imgData = data.api.api_image();
+ } catch (er){
+ webshims.error(er);
+ }
+ if(!tested[data.currentSrc]){
+ tested[data.currentSrc] = true;
+ if(imgData == null){
+ webshims.error('video has to be same origin or a crossdomain.xml has to be provided. Video has to be visible for flash API');
+ }
+ }
+
+ args = slice.call(arguments, 1);
+ img = new Image();
+
+ //todo find a performant sync way
+ img.onload = function(){
+ args.unshift(this);
+ _drawImage.apply(context, args);
+ img.onload = null;
+ };
+
+ img.src = 'data:image/jpeg;base64,'+imgData;
+
+ if(img.complete){
+ img.onload();
+ }
+ return;
+ }
+ return _drawImage.apply(this, arguments);
+ };
+ return true;
+ };
+
+ if(!addCanvasBridge()){
+ webshims.ready('canvas', addCanvasBridge);
+ }
+
+
if(hasFlash && $.cleanData){
var oldClean = $.cleanData;
var objElem = document.createElement('object');
@@ -1442,12 +1531,12 @@
object: 1,
OBJECT: 1
};
-
+
$.cleanData = function(elems){
var i, len, prop;
var ret = oldClean.apply(this, arguments);
if(elems && (len = elems.length) && loadedSwf){
-
+
for(i = 0; i < len; i++){
if(flashNames[elems[i].nodeName] && 'api_destroy' in elems[i]){
loadedSwf--;
@@ -1463,14 +1552,14 @@
} catch(er){console.log(er);}
}
}
-
+
}
return ret;
};
}
if(!hasNative){
-
+
['poster', 'src'].forEach(function(prop){
webshims.defineNodeNamesProperty(prop == 'src' ? ['audio', 'video', 'source'] : ['video'], prop, {
//attr: {},
@@ -1478,21 +1567,21 @@
propType: 'src'
});
});
-
+
webshims.defineNodeNamesProperty(['audio', 'video'], 'preload', {
reflect: true,
propType: 'enumarated',
defaultValue: '',
limitedTo: ['', 'auto', 'metadata', 'none']
});
-
+
webshims.reflectProperties('source', ['type', 'media']);
-
-
+
+
['autoplay', 'controls'].forEach(function(name){
webshims.defineNodeNamesBooleanProperty(['audio', 'video'], name);
});
-
+
webshims.defineNodeNamesProperties(['audio', 'video'], {
HAVE_CURRENT_DATA: {
value: 2
@@ -1521,7 +1610,7 @@
NETWORK_NO_SOURCE: {
value: 3
}
-
+
}, 'prop');
@@ -1547,7 +1636,7 @@
var media, error, parent;
if(
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source', parent).last()[0] == e.target)) &&
- (media = $(e.target).closest('audio, video')) && !media.hasClass('nonnative-api-active')
+ (media = $(e.target).closest('audio, video')) && !media.hasClass('nonnative-api-active')
){
error = media.prop('error');
setTimeout(function(){
@@ -2038,11 +2127,29 @@
webshims.error('you must provide a language for track in subtitles state');
}
obj.__wsmode = obj.mode;
+
+ webshims.defineProperty(obj, '_wsUpdateMode', {
+ value: function(){
+ $(mediaelem).triggerHandler('updatetrackdisplay');
+ },
+ enumerable: false
+ });
}
return obj;
};
+ if(!$.propHooks.mode){
+ $.propHooks.mode = {
+ set: function(obj, value){
+ obj.mode = value;
+ if(obj._wsUpdateMode && obj._wsUpdateMode.call){
+ obj._wsUpdateMode();
+ }
+ return obj.mode;
+ }
+ };
+ }
/*
taken from:
@@ -2293,7 +2400,7 @@ modified for webshims
var name = copyName[copyProp] || copyProp;
webshims.onNodeNamesPropertyModify('track', copyProp, function(){
var trackData = webshims.data(this, 'trackData');
- var track = this;
+
if(trackData){
if(copyProp == 'kind'){
refreshTrack(this, trackData);
diff --git a/public/webshims/shims/combos/22.js b/public/webshims/shims/combos/22.js
index ea2ec46b..d5da49db 100644
--- a/public/webshims/shims/combos/22.js
+++ b/public/webshims/shims/combos/22.js
@@ -604,11 +604,29 @@ webshims.register('details', function($, webshims, window, doc, undefined, optio
webshims.error('you must provide a language for track in subtitles state');
}
obj.__wsmode = obj.mode;
+
+ webshims.defineProperty(obj, '_wsUpdateMode', {
+ value: function(){
+ $(mediaelem).triggerHandler('updatetrackdisplay');
+ },
+ enumerable: false
+ });
}
return obj;
};
+ if(!$.propHooks.mode){
+ $.propHooks.mode = {
+ set: function(obj, value){
+ obj.mode = value;
+ if(obj._wsUpdateMode && obj._wsUpdateMode.call){
+ obj._wsUpdateMode();
+ }
+ return obj.mode;
+ }
+ };
+ }
/*
taken from:
@@ -859,7 +877,7 @@ modified for webshims
var name = copyName[copyProp] || copyProp;
webshims.onNodeNamesPropertyModify('track', copyProp, function(){
var trackData = webshims.data(this, 'trackData');
- var track = this;
+
if(trackData){
if(copyProp == 'kind'){
refreshTrack(this, trackData);
diff --git a/public/webshims/shims/combos/23.js b/public/webshims/shims/combos/23.js
index 52b1a592..ca2406ff 100644
--- a/public/webshims/shims/combos/23.js
+++ b/public/webshims/shims/combos/23.js
@@ -282,7 +282,7 @@ webshims.isReady('swfmini', true);
}
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
- var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
+ var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
var mediaelement = webshims.mediaelement;
mediaelement.parseRtmp = function(data){
@@ -392,6 +392,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
loadYt();
}
};
+
webshims.addPolyfill('mediaelement-yt', {
test: !hasYt,
@@ -436,7 +437,16 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
if(src.indexOf('youtube.com/watch?') != -1 || src.indexOf('youtube.com/v/') != -1){
return 'video/youtube';
}
- if(src.indexOf('rtmp') === 0){
+
+ if(!src.indexOf('mediastream:') || !src.indexOf('blob:http')){
+ return 'usermedia';
+ }
+
+ if(!src.indexOf('webshimstream')){
+ return 'jarisplayer/stream';
+ }
+
+ if(!src.indexOf('rtmp')){
return nodeName+'/rtmp';
}
src = src.split('?')[0].split('#')[0].split('.');
@@ -453,28 +463,24 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
};
- mediaelement.srces = function(mediaElem, srces){
+ mediaelement.srces = function(mediaElem){
+ var srces = [];
mediaElem = $(mediaElem);
- if(!srces){
- srces = [];
- var nodeName = mediaElem[0].nodeName.toLowerCase();
- var src = getSrcObj(mediaElem, nodeName);
-
- if(!src.src){
- $('source', mediaElem).each(function(){
- src = getSrcObj(this, nodeName);
- if(src.src){srces.push(src);}
- });
- } else {
- srces.push(src);
- }
- return srces;
+ var nodeName = mediaElem[0].nodeName.toLowerCase();
+ var src = getSrcObj(mediaElem, nodeName);
+
+ if(!src.src){
+ $('source', mediaElem).each(function(){
+ src = getSrcObj(this, nodeName);
+ if(src.src){srces.push(src);}
+ });
} else {
- webshims.error('setting sources was removed.');
+ srces.push(src);
}
+ return srces;
};
- mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
+ mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'jarisplayer/stream', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
mediaelement.canThirdPlaySrces = function(mediaElem, srces){
var ret = '';
@@ -504,7 +510,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
srces = srces || mediaelement.srces(mediaElem);
$.each(srces, function(i, src){
- if(src.type && nativeCanPlay.call(mediaElem[0], src.type) ){
+ if(src.type == 'usermedia' || (src.type && nativeCanPlay.call(mediaElem[0], src.type)) ){
ret = src;
return false;
}
diff --git a/public/webshims/shims/combos/25.js b/public/webshims/shims/combos/25.js
index d365f0f6..13176bb7 100644
--- a/public/webshims/shims/combos/25.js
+++ b/public/webshims/shims/combos/25.js
@@ -60,7 +60,6 @@
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
webshims.assumeARIA = true;
@@ -91,7 +90,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
//shortcus
- var modules = webshims.modules;
var listReg = /\s*,\s*/;
//proxying attribute
@@ -476,8 +474,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
(tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
}
};
-
- var elementExtends = {};
+
return {
createTmpCache: function(nodeName){
if($.isDOMReady){
@@ -529,6 +526,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
$.extend(webshims, {
+ xProps: havePolyfill,
getID: (function(){
var ID = new Date().getTime();
return function(elem){
@@ -542,6 +540,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return id;
};
})(),
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
+
+ prefixed: function (prop, obj){
+ var i, testProp;
+ var ret = false;
+ if(obj[prop]){
+ ret = prop;
+ }
+ if(!ret){
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
+ for(i = 0; i < webshims.domPrefixes.length; i++){
+ testProp = webshims.domPrefixes[i]+prop;
+ if(testProp in obj){
+ ret = testProp;
+ break;
+ }
+ }
+ }
+ return ret;
+ },
shadowClass: 'wsshadow-'+(Date.now()),
implement: function(elem, type){
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
@@ -1659,35 +1677,40 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
} catch(e){}
printMessage();
if(hasXDomain == null){
- $.ajax({
- url: 'crossdomain.xml',
- type: 'HEAD',
- dataType: 'xml',
- success: function(){
- hasXDomain = 'yes';
- },
- error: function(){
- hasXDomain = 'no';
- },
- complete: function(){
- try {
- sessionStorage.setItem('wsXdomain.xml', hasXDomain);
- } catch(e){}
- printMessage();
- }
- });
+ try {
+ $.ajax({
+ url: 'crossdomain.xml',
+ type: 'HEAD',
+ dataType: 'xml',
+ success: function(){
+ hasXDomain = 'yes';
+ },
+ error: function(){
+ hasXDomain = 'no';
+ },
+ complete: function(){
+ try {
+ sessionStorage.setItem('wsXdomain.xml', hasXDomain);
+ } catch(e){}
+ printMessage();
+ }
+ });
+ } catch(e){}
}
});
}
+ if(document.readyState == 'complete'){
+ webshims.isReady('WINDOWLOAD', true);
+ }
});
;webshims.register('mediaelement-jaris', function($, webshims, window, document, undefined, options){
"use strict";
-
+
var mediaelement = webshims.mediaelement;
var swfmini = window.swfmini;
var support = webshims.support;
var hasNative = support.mediaelement;
- var hasFlash = swfmini.hasFlashPlayerVersion('9.0.115');
+ var hasFlash = swfmini.hasFlashPlayerVersion('11.3');
var loadedSwf = 0;
var needsLoadPreload = 'ActiveXObject' in window && hasNative;
var getProps = {
@@ -1720,18 +1743,19 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
};
var getPropKeys = Object.keys(getProps);
-
+
var getSetProps = {
currentTime: 0,
volume: 1,
muted: false
};
var getSetPropKeys = Object.keys(getSetProps);
-
+
var playerStateObj = $.extend({
isActive: 'html5',
- activating: 'html5',
+ activating: 'html5',
wasSwfReady: false,
+ _usermedia: null,
_bufferedEnd: 0,
_bufferedStart: 0,
currentTime: 0,
@@ -1741,8 +1765,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
lastDuration: 0,
_timeDif: 0.3
}, getProps, getSetProps);
-
-
+
+
var getSwfDataFromElem = function(elem){
try {
(elem.nodeName);
@@ -1752,15 +1776,15 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
var data = webshims.data(elem, 'mediaelement');
return (data && data.isActive == 'third') ? data : null;
};
-
+
var trigger = function(elem, evt){
evt = $.Event(evt);
evt.preventDefault();
$.event.trigger(evt, undefined, elem);
};
-
+
var playerSwfPath = options.playerPath || webshims.cfg.basePath + "swf/" + (options.playerName || 'JarisFLVPlayer.swf');
-
+
webshims.extendUNDEFProp(options.params, {
allowscriptaccess: 'always',
allowfullscreen: 'true',
@@ -1774,7 +1798,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
webshims.extendUNDEFProp(options.attrs, {
bgcolor: '#000000'
});
-
+ options.playerPath = playerSwfPath;
+
var setReadyState = function(readyState, data){
if(readyState < 3){
clearTimeout(data._canplaythroughTimer);
@@ -1802,8 +1827,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
$(data._elem).triggerHandler('seeked');
}
};
-
-
+
+
mediaelement.jarisEvent = {};
var localConnectionTimer;
var onEvent = {
@@ -1818,7 +1843,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
playing = override;
}
if(playing == idled || playing == null){
-
+
data.paused = !playing;
type = data.paused ? 'pause' : 'play';
data._ppFlag = true;
@@ -1833,7 +1858,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
},
onSeek: function(jaris, data){
data._lastSeektime = jaris.seekTime;
-
+
data.seeking = true;
$(data._elem).triggerHandler('seeking');
clearTimeout(data._seekedTimer);
@@ -1849,19 +1874,19 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
setReadyState(3, data);
},
onDataInitialized: function(jaris, data){
-
+
var oldDur = data.duration;
var durDelta;
data.duration = jaris.duration;
if(oldDur == data.duration || isNaN(data.duration)){return;}
-
+
if(data._calledMeta && ((durDelta = Math.abs(data.lastDuration - data.duration)) < 2)){return;}
-
-
-
+
+
+
data.videoHeight = jaris.height;
data.videoWidth = jaris.width;
-
+
if(!data.networkState){
data.networkState = 2;
}
@@ -1917,7 +1942,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
data.lastCalledTime = data.currentTime;
$.event.trigger('timeupdate', undefined, data._elem, true);
}
-
+
},
onProgress: function(jaris, data){
if(data.ended){
@@ -1927,7 +1952,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return;
}
var percentage = jaris.loaded / jaris.total;
-
+
if(percentage > 0.02 && percentage < 0.2){
setReadyState(3, data);
} else if(percentage > 0.2){
@@ -1940,10 +1965,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
if(data._bufferedEnd && (data._bufferedEnd > percentage)){
data._bufferedStart = data.currentTime || 0;
}
-
+
data._bufferedEnd = percentage;
data.buffered.length = 1;
-
+
$.event.trigger('progress', undefined, data._elem, true);
},
onPlaybackFinished: function(jaris, data){
@@ -1963,7 +1988,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
ready: (function(){
var testAPI = function(data){
var passed = true;
-
+
try {
data.api.api_get('volume');
} catch(er){
@@ -1971,17 +1996,17 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
return passed;
};
-
+
return function(jaris, data){
var i = 0;
-
+
var doneFn = function(){
if(i > 9){
data.tryedReframeing = 0;
return;
}
i++;
-
+
data.tryedReframeing++;
if(testAPI(data)){
data.wasSwfReady = true;
@@ -2011,25 +2036,25 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
clearTimeout(localConnectionTimer);
clearTimeout(data.reframeTimer);
data.shadowElem.removeClass('flashblocker-assumed');
-
+
if(!i){
doneFn();
} else {
data.reframeTimer = setTimeout(doneFn, 9);
}
-
+
};
})()
};
-
+
onEvent.onMute = onEvent.onVolumeChange;
-
-
+ mediaelement.onEvent = onEvent;
+
var workActionQueue = function(data){
var actionLen = data.actionQueue.length;
var i = 0;
var operation;
-
+
if(actionLen && data.isActive == 'third'){
while(data.actionQueue.length && actionLen > i){
i++;
@@ -2050,7 +2075,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
if( (data._ppFlag === undefined && ($.prop(data._elem, 'autoplay')) || !data.paused)){
setTimeout(function(){
if(data.isActive == 'third' && (data._ppFlag === undefined || !data.paused)){
-
+
try {
$(data._elem).play();
data._ppFlag = true;
@@ -2058,7 +2083,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
}, 1);
}
-
+
if(data.muted){
$.prop(data._elem, 'muted', true);
}
@@ -2066,8 +2091,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
$.prop(data._elem, 'volume', data.volume);
}
};
-
-
+
+
var addMediaToStopEvents = $.noop;
if(hasNative){
var stopEvents = {
@@ -2078,14 +2103,14 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
var hidevents = hideEvtArray.map(function(evt){
return evt +'.webshimspolyfill';
}).join(' ');
-
+
var hidePlayerEvents = function(event){
var data = webshims.data(event.target, 'mediaelement');
if(!data){return;}
var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
if( isNativeHTML5 == (data.activating == 'third') ){
event.stopImmediatePropagation();
-
+
if(stopEvents[event.type]){
if(data.isActive != data.activating){
$(event.target).pause();
@@ -2095,7 +2120,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
}
};
-
+
addMediaToStopEvents = function(elem){
$(elem)
.off(hidevents)
@@ -2107,8 +2132,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
addMediaToStopEvents(document);
}
-
-
+
+
mediaelement.setActive = function(elem, type, data){
if(!data){
data = webshims.data(elem, 'mediaelement');
@@ -2130,14 +2155,14 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
$(elem).trigger('mediaelementapichange');
};
-
-
-
+
+
+
var resetSwfProps = (function(){
- var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', 'lastCalledTime', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'seeking', 'videoHeight', 'videoWidth'];
+ var resetProtoProps = ['_calledMeta', 'lastDuration', '_bufferedEnd', 'lastCalledTime', '_usermedia', '_bufferedStart', '_ppFlag', 'currentSrc', 'currentTime', 'duration', 'ended', 'networkState', 'paused', 'seeking', 'videoHeight', 'videoWidth'];
var len = resetProtoProps.length;
return function(data){
-
+
if(!data){return;}
clearTimeout(data._seekedTimer);
var lenI = len;
@@ -2154,8 +2179,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
};
})();
-
-
+
+
var getComputedDimension = (function(){
var dimCache = {};
var getVideoDims = function(data){
@@ -2177,7 +2202,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
width: this.width,
height: this.height
};
-
+
if(dimCache[poster].height && dimCache[poster].width){
setElementDimension(data, $.prop(data._elem, 'controls'));
} else {
@@ -2193,12 +2218,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
return ret || {width: 300, height: data._elemNodeName == 'video' ? 150 : 50};
};
-
+
var getCssStyle = function(elem, style){
return elem.style[style] || (elem.currentStyle && elem.currentStyle[style]) || (window.getComputedStyle && (window.getComputedStyle( elem, null ) || {} )[style]) || '';
};
var minMaxProps = ['minWidth', 'maxWidth', 'minHeight', 'maxHeight'];
-
+
var addMinMax = function(elem, ret){
var i, prop;
var hasMinMax = false;
@@ -2212,7 +2237,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return hasMinMax;
};
var retFn = function(data){
- var videoDims, ratio, hasMinMax;
+ var videoDims, ratio;
var elem = data._elem;
var autos = {
width: getCssStyle(elem, 'width') == 'auto',
@@ -2222,11 +2247,11 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
width: !autos.width && $(elem).width(),
height: !autos.height && $(elem).height()
};
-
+
if(autos.width || autos.height){
videoDims = getVideoDims(data);
ratio = videoDims.width / videoDims.height;
-
+
if(autos.width && autos.height){
ret.width = videoDims.width;
ret.height = videoDims.height;
@@ -2235,12 +2260,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
} else if(autos.height){
ret.height = ret.width / ratio;
}
-
+
if(addMinMax(elem, ret)){
data.shadowElem.css(ret);
if(autos.width){
ret.width = data.shadowElem.height() * ratio;
- }
+ }
if(autos.height){
ret.height = ((autos.width) ? ret.width : data.shadowElem.width()) / ratio;
}
@@ -2248,11 +2273,11 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
data.shadowElem.css(ret);
ret.height = data.shadowElem.width() / ratio;
ret.width = ret.height * ratio;
-
+
data.shadowElem.css(ret);
ret.width = data.shadowElem.height() * ratio;
ret.height = ret.width / ratio;
-
+
}
if(!webshims.support.mediaelement){
ret.width = data.shadowElem.width();
@@ -2262,13 +2287,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
return ret;
};
-
+
return retFn;
})();
-
+
var setElementDimension = function(data, hasControls){
var dims;
-
+
var box = data.shadowElem;
$(data._elem)[hasControls ? 'addClass' : 'removeClass']('webshims-controls');
@@ -2283,7 +2308,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
}
};
-
+
var bufferSrc = (function(){
var preloads = {
'': 1,
@@ -2298,17 +2323,17 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return !!(preloads[preload] || (preload == 'metadata' && $(elem).is('.preload-in-doubt, video:not([poster])')));
};
})();
-
+
var regs = {
- A: /&/g,
- a: /&/g,
- e: /\=/g,
- q: /\?/g
- },
- replaceVar = function(val){
- return (val.replace) ? val.replace(regs.A, '%26').replace(regs.a, '%26').replace(regs.e, '%3D').replace(regs.q, '%3F') : val;
- };
-
+ A: /&/g,
+ a: /&/g,
+ e: /\=/g,
+ q: /\?/g
+ },
+ replaceVar = function(val){
+ return (val.replace) ? val.replace(regs.A, '%26').replace(regs.a, '%26').replace(regs.e, '%3D').replace(regs.q, '%3F') : val;
+ };
+
if('matchMedia' in window){
var allowMediaSorting = false;
try {
@@ -2322,14 +2347,15 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
} catch(er){
return 0;
}
- return src1 == src2 ?
+ return src1 == src2 ?
0 :
src1 ? -1
- : 1;
+ : 1;
};
}
}
+ mediaelement.resetSwfProps = resetSwfProps;
mediaelement.createSWF = function( elem, canPlaySrc, data ){
if(!hasFlash){
setTimeout(function(){
@@ -2337,7 +2363,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}, 1);
return;
}
-
+
var attrStyle = {};
if(loadedSwf < 1){
@@ -2348,55 +2374,40 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
if(!data){
data = webshims.data(elem, 'mediaelement');
}
-
+
if((attrStyle.height = $.attr(elem, 'height') || '') || (attrStyle.width = $.attr(elem, 'width') || '')){
$(elem).css(attrStyle);
webshims.warn("width or height content attributes used. Webshims prefers the usage of CSS (computed styles or inline styles) to detect size of a video/audio. It's really more powerfull.");
}
-
- var isRtmp = canPlaySrc.type == 'audio/rtmp' || canPlaySrc.type == 'video/rtmp';
- var vars = $.extend({}, options.vars, {
- poster: replaceVar($.attr(elem, 'poster') && $.prop(elem, 'poster') || ''),
- source: replaceVar(canPlaySrc.streamId || canPlaySrc.srcProp),
- server: replaceVar(canPlaySrc.server || '')
- });
- var elemVars = $(elem).data('vars') || {};
-
-
-
+ var box;
+ var streamRequest = canPlaySrc.streamrequest;
+ var isStream = canPlaySrc.type == 'jarisplayer/stream';
+
+
var hasControls = $.prop(elem, 'controls');
var elemId = 'jarisplayer-'+ webshims.getID(elem);
-
- var params = $.extend(
- {},
- options.params,
- $(elem).data('params')
- );
+
+
var elemNodeName = elem.nodeName.toLowerCase();
- var attrs = $.extend(
- {},
- options.attrs,
- {
- name: elemId,
- id: elemId
- },
- $(elem).data('attrs')
- );
+
var setDimension = function(){
if(data.isActive == 'third'){
setElementDimension(data, $.prop(elem, 'controls'));
}
};
-
- var box;
-
+
+ if(isStream && !streamRequest){
+ webshim.usermedia.attach(elem, canPlaySrc, data);
+ return;
+ }
+
if(data && data.swfCreated){
mediaelement.setActive(elem, 'third', data);
-
+
data.currentSrc = '';
-
+
data.shadowElem.html('
');
-
+
data.api = false;
data.actionQueue = [];
box = data.shadowElem;
@@ -2425,7 +2436,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
value: elem
},
currentSrc: {
- value: canPlaySrc.srcProp
+ value: streamRequest ? '' : canPlaySrc.srcProp
},
swfCreated: {
value: true
@@ -2453,26 +2464,27 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
}
}));
-
-
-
+
+
+
box.insertBefore(elem);
-
+
if(hasNative){
$.extend(data, {volume: $.prop(elem, 'volume'), muted: $.prop(elem, 'muted'), paused: $.prop(elem, 'paused')});
}
-
+
webshims.addShadowDom(elem, box);
if(!webshims.data(elem, 'mediaelement')){
webshims.data(elem, 'mediaelement', data);
}
addMediaToStopEvents(elem);
-
+
mediaelement.setActive(elem, 'third', data);
-
+
setElementDimension(data, hasControls);
-
+
$(elem)
+
.on({
'updatemediaelementdimensions loadedmetadata emptied': setDimension,
'remove': function(e){
@@ -2486,14 +2498,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
.onWSOff('updateshadowdom', setDimension)
;
}
-
+
if(mediaelement.jarisEvent[data.id] && mediaelement.jarisEvent[data.id].elem != elem){
webshims.error('something went wrong');
return;
} else if(!mediaelement.jarisEvent[data.id]){
-
+
mediaelement.jarisEvent[data.id] = function(jaris){
-
if(jaris.type == 'ready'){
var onReady = function(){
if(data.api){
@@ -2518,11 +2529,11 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
if(!data._calledMeta && isNaN(jaris.duration) && data.duration != jaris.duration && isNaN(data.duration)){
onEvent.onDataInitialized(jaris, data);
}
-
+
if(!data._ppFlag && jaris.type != 'onPlayPause'){
onEvent.onPlayPause(jaris, data);
}
-
+
if(onEvent[jaris.type]){
onEvent[jaris.type](jaris, data);
}
@@ -2532,29 +2543,68 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
mediaelement.jarisEvent[data.id].elem = elem;
}
-
- $.extend(vars,
+
+ createSwf(elem, canPlaySrc, data, elemId, hasControls, elemNodeName);
+
+ if(!streamRequest){
+ trigger(data._elem, 'loadstart');
+ }
+ };
+
+ var createSwf = function(elem, canPlaySrc, data, elemId, hasControls, elemNodeName){
+ var vars, elemVars, params, attrs;
+ var isRtmp = canPlaySrc.type == 'audio/rtmp' || canPlaySrc.type == 'video/rtmp';
+ var isUserStream = canPlaySrc.type == 'jarisplayer/stream';
+
+ vars = $.extend({}, options.vars, {
+ poster: replaceVar($.attr(elem, 'poster') && $.prop(elem, 'poster') || ''),
+ source: replaceVar(canPlaySrc.streamId || canPlaySrc.srcProp),
+ server: replaceVar(canPlaySrc.server || '')
+ });
+
+ elemVars = $(elem).data('vars') || {};
+
+ $.extend(vars,
{
id: elemId,
evtId: data.id,
- controls: ''+hasControls,
+ controls: ''+(!isUserStream && hasControls),
autostart: 'false',
nodename: elemNodeName
},
elemVars
);
-
+
if(isRtmp){
vars.streamtype = 'rtmp';
+ } else if(isUserStream){
+ vars.streamtype = 'usermedia';
} else if(canPlaySrc.type == 'audio/mpeg' || canPlaySrc.type == 'audio/mp3'){
vars.type = 'audio';
vars.streamtype = 'file';
} else if(canPlaySrc.type == 'video/youtube'){
vars.streamtype = 'youtube';
}
+
+ attrs = $.extend(
+ {},
+ options.attrs,
+ {
+ name: elemId,
+ id: elemId
+ },
+ $(elem).data('attrs')
+ );
+
+ params = $.extend(
+ {},
+ options.params,
+ $(elem).data('params')
+ );
+
options.changeSWF(vars, elem, canPlaySrc, data, 'embed');
clearTimeout(data.flashBlock);
-
+
swfmini.embedSWF(playerSwfPath, elemId, "100%", "100%", "9.0.115", false, vars, params, attrs, function(swfData){
if(swfData.success){
var fBlocker = function(){
@@ -2566,13 +2616,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
$(swfData.ref).css({'minHeight': '2px', 'minWidth': '2px', display: 'block'});
};
data.api = swfData.ref;
-
+
if(!hasControls){
$(swfData.ref).attr('tabindex', '-1').css('outline', 'none');
}
-
+
data.flashBlock = setTimeout(fBlocker, 99);
-
+
if(!localConnectionTimer){
clearTimeout(localConnectionTimer);
localConnectionTimer = setTimeout(function(){
@@ -2586,23 +2636,24 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
flash = null;
}, 8000);
}
+ if(isUserStream){
+ webshim.usermedia.request(elem, canPlaySrc, data);
+ }
}
});
-
- trigger(data._elem, 'loadstart');
};
-
-
+
+
var queueSwfMethod = function(elem, fn, args, data){
data = data || getSwfDataFromElem(elem);
-
+
if(data){
if(data.api && data.api[fn]){
data.api[fn].apply(data.api, args || []);
} else {
//todo add to queue
data.actionQueue.push({fn: fn, args: args});
-
+
if(data.actionQueue.length > 10){
setTimeout(function(){
if(data.actionQueue.length > 5){
@@ -2615,13 +2666,14 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
return false;
};
-
+ mediaelement.queueSwfMethod = queueSwfMethod;
+
['audio', 'video'].forEach(function(nodeName){
var descs = {};
var mediaSup;
var createGetProp = function(key){
if(nodeName == 'audio' && (key == 'videoHeight' || key == 'videoWidth')){return;}
-
+
descs[key] = {
get: function(){
var data = getSwfDataFromElem(this);
@@ -2641,33 +2693,33 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
delete descs[key].writeable;
descs[key].set = setFn;
};
-
+
createGetSetProp('seeking');
-
+
createGetSetProp('volume', function(v){
var data = getSwfDataFromElem(this);
if(data){
v *= 1;
if(!isNaN(v)){
-
+
if(v < 0 || v > 1){
webshims.error('volume greater or less than allowed '+ (v / 100));
}
-
+
queueSwfMethod(this, 'api_volume', [v], data);
-
-
+
+
if(data.volume != v){
data.volume = v;
trigger(data._elem, 'volumechange');
}
data = null;
- }
+ }
} else if(mediaSup.volume.prop._supset) {
return mediaSup.volume.prop._supset.apply(this, arguments);
}
});
-
+
createGetSetProp('muted', function(m){
var data = getSwfDataFromElem(this);
if(data){
@@ -2682,8 +2734,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return mediaSup.muted.prop._supset.apply(this, arguments);
}
});
-
-
+
+
createGetSetProp('currentTime', function(t){
var data = getSwfDataFromElem(this);
if(data){
@@ -2691,23 +2743,23 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
if (!isNaN(t)) {
queueSwfMethod(this, 'api_seek', [t], data);
}
-
+
} else if(mediaSup.currentTime.prop._supset) {
return mediaSup.currentTime.prop._supset.apply(this, arguments);
}
});
-
+
['play', 'pause'].forEach(function(fn){
descs[fn] = {
value: function(){
var data = getSwfDataFromElem(this);
-
+
if(data){
if(data.stopPlayPause){
clearTimeout(data.stopPlayPause);
}
queueSwfMethod(this, fn == 'play' ? 'api_play' : 'api_pause', [], data);
-
+
data._ppFlag = true;
if(data.paused != (fn != 'play')){
data.paused = fn != 'play';
@@ -2719,14 +2771,14 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
};
});
-
+
getPropKeys.forEach(createGetProp);
-
+
webshims.onNodeNamesPropertyModify(nodeName, 'controls', function(val, boolProp){
var data = getSwfDataFromElem(this);
-
+
$(this)[boolProp ? 'addClass' : 'removeClass']('webshims-controls');
-
+
if(data){
if(nodeName == 'audio'){
setElementDimension(data, boolProp);
@@ -2734,12 +2786,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
queueSwfMethod(this, 'api_controls', [boolProp], data);
}
});
-
-
+
+
webshims.onNodeNamesPropertyModify(nodeName, 'preload', function(val){
var data, baseData, elem;
-
-
+
+
if(bufferSrc(this)){
data = getSwfDataFromElem(this);
if(data){
@@ -2754,9 +2806,9 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
}
});
-
+
mediaSup = webshims.defineNodeNameProperties(nodeName, descs, 'prop');
-
+
if(!support.mediaDefaultMuted){
webshims.defineNodeNameProperties(nodeName, {
defaultMuted: {
@@ -2774,8 +2826,68 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}, 'prop');
}
});
-
-
+
+ var addCanvasBridge = function(){
+ if(!window.CanvasRenderingContext2D){
+ return false;
+ }
+ var _drawImage = CanvasRenderingContext2D.prototype.drawImage;
+ var slice = Array.prototype.slice;
+ var isVideo = {
+ video: 1,
+ VIDEO: 1
+ };
+ var tested = {};
+
+ if(!_drawImage){
+ webshim.error('canvas.drawImage feature is needed. In IE8 flashvanvas pro can be used');
+ }
+
+ CanvasRenderingContext2D.prototype.drawImage = function(elem){
+ var data, img, args, imgData;
+ var context = this;
+
+ if(isVideo[elem.nodeName] && (data = webshims.data(elem, 'mediaelement')) && data.isActive == 'third' && data.api.api_image){
+
+ try {
+ imgData = data.api.api_image();
+ } catch (er){
+ webshims.error(er);
+ }
+ if(!tested[data.currentSrc]){
+ tested[data.currentSrc] = true;
+ if(imgData == null){
+ webshims.error('video has to be same origin or a crossdomain.xml has to be provided. Video has to be visible for flash API');
+ }
+ }
+
+ args = slice.call(arguments, 1);
+ img = new Image();
+
+ //todo find a performant sync way
+ img.onload = function(){
+ args.unshift(this);
+ _drawImage.apply(context, args);
+ img.onload = null;
+ };
+
+ img.src = 'data:image/jpeg;base64,'+imgData;
+
+ if(img.complete){
+ img.onload();
+ }
+ return;
+ }
+ return _drawImage.apply(this, arguments);
+ };
+ return true;
+ };
+
+ if(!addCanvasBridge()){
+ webshims.ready('canvas', addCanvasBridge);
+ }
+
+
if(hasFlash && $.cleanData){
var oldClean = $.cleanData;
var objElem = document.createElement('object');
@@ -2789,12 +2901,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
object: 1,
OBJECT: 1
};
-
+
$.cleanData = function(elems){
var i, len, prop;
var ret = oldClean.apply(this, arguments);
if(elems && (len = elems.length) && loadedSwf){
-
+
for(i = 0; i < len; i++){
if(flashNames[elems[i].nodeName] && 'api_destroy' in elems[i]){
loadedSwf--;
@@ -2810,14 +2922,14 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
} catch(er){console.log(er);}
}
}
-
+
}
return ret;
};
}
if(!hasNative){
-
+
['poster', 'src'].forEach(function(prop){
webshims.defineNodeNamesProperty(prop == 'src' ? ['audio', 'video', 'source'] : ['video'], prop, {
//attr: {},
@@ -2825,21 +2937,21 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
propType: 'src'
});
});
-
+
webshims.defineNodeNamesProperty(['audio', 'video'], 'preload', {
reflect: true,
propType: 'enumarated',
defaultValue: '',
limitedTo: ['', 'auto', 'metadata', 'none']
});
-
+
webshims.reflectProperties('source', ['type', 'media']);
-
-
+
+
['autoplay', 'controls'].forEach(function(name){
webshims.defineNodeNamesBooleanProperty(['audio', 'video'], name);
});
-
+
webshims.defineNodeNamesProperties(['audio', 'video'], {
HAVE_CURRENT_DATA: {
value: 2
@@ -2868,7 +2980,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
NETWORK_NO_SOURCE: {
value: 3
}
-
+
}, 'prop');
@@ -2894,7 +3006,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
var media, error, parent;
if(
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source', parent).last()[0] == e.target)) &&
- (media = $(e.target).closest('audio, video')) && !media.hasClass('nonnative-api-active')
+ (media = $(e.target).closest('audio, video')) && !media.hasClass('nonnative-api-active')
){
error = media.prop('error');
setTimeout(function(){
diff --git a/public/webshims/shims/combos/26.js b/public/webshims/shims/combos/26.js
index 39131ada..5d2bf15d 100644
--- a/public/webshims/shims/combos/26.js
+++ b/public/webshims/shims/combos/26.js
@@ -7679,24 +7679,29 @@ Globally exposed namespace with the most frequently used public classes and hand
} catch(e){}
printMessage();
if(hasXDomain == null){
- $.ajax({
- url: 'crossdomain.xml',
- type: 'HEAD',
- dataType: 'xml',
- success: function(){
- hasXDomain = 'yes';
- },
- error: function(){
- hasXDomain = 'no';
- },
- complete: function(){
- try {
- sessionStorage.setItem('wsXdomain.xml', hasXDomain);
- } catch(e){}
- printMessage();
- }
- });
+ try {
+ $.ajax({
+ url: 'crossdomain.xml',
+ type: 'HEAD',
+ dataType: 'xml',
+ success: function(){
+ hasXDomain = 'yes';
+ },
+ error: function(){
+ hasXDomain = 'no';
+ },
+ complete: function(){
+ try {
+ sessionStorage.setItem('wsXdomain.xml', hasXDomain);
+ } catch(e){}
+ printMessage();
+ }
+ });
+ } catch(e){}
}
});
}
+ if(document.readyState == 'complete'){
+ webshims.isReady('WINDOWLOAD', true);
+ }
});
diff --git a/public/webshims/shims/combos/27.js b/public/webshims/shims/combos/27.js
index 64a45b36..ab2667a2 100644
--- a/public/webshims/shims/combos/27.js
+++ b/public/webshims/shims/combos/27.js
@@ -1698,24 +1698,29 @@ webshims.register('form-shim-extend2', function($, webshims, window, document, u
} catch(e){}
printMessage();
if(hasXDomain == null){
- $.ajax({
- url: 'crossdomain.xml',
- type: 'HEAD',
- dataType: 'xml',
- success: function(){
- hasXDomain = 'yes';
- },
- error: function(){
- hasXDomain = 'no';
- },
- complete: function(){
- try {
- sessionStorage.setItem('wsXdomain.xml', hasXDomain);
- } catch(e){}
- printMessage();
- }
- });
+ try {
+ $.ajax({
+ url: 'crossdomain.xml',
+ type: 'HEAD',
+ dataType: 'xml',
+ success: function(){
+ hasXDomain = 'yes';
+ },
+ error: function(){
+ hasXDomain = 'no';
+ },
+ complete: function(){
+ try {
+ sessionStorage.setItem('wsXdomain.xml', hasXDomain);
+ } catch(e){}
+ printMessage();
+ }
+ });
+ } catch(e){}
}
});
}
+ if(document.readyState == 'complete'){
+ webshims.isReady('WINDOWLOAD', true);
+ }
});
diff --git a/public/webshims/shims/combos/3.js b/public/webshims/shims/combos/3.js
index 0f9493cc..86f4f3c9 100644
--- a/public/webshims/shims/combos/3.js
+++ b/public/webshims/shims/combos/3.js
@@ -60,7 +60,6 @@
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
webshims.assumeARIA = true;
@@ -91,7 +90,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
//shortcus
- var modules = webshims.modules;
var listReg = /\s*,\s*/;
//proxying attribute
@@ -476,8 +474,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
(tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
}
};
-
- var elementExtends = {};
+
return {
createTmpCache: function(nodeName){
if($.isDOMReady){
@@ -529,6 +526,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
$.extend(webshims, {
+ xProps: havePolyfill,
getID: (function(){
var ID = new Date().getTime();
return function(elem){
@@ -542,6 +540,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return id;
};
})(),
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
+
+ prefixed: function (prop, obj){
+ var i, testProp;
+ var ret = false;
+ if(obj[prop]){
+ ret = prop;
+ }
+ if(!ret){
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
+ for(i = 0; i < webshims.domPrefixes.length; i++){
+ testProp = webshims.domPrefixes[i]+prop;
+ if(testProp in obj){
+ ret = testProp;
+ break;
+ }
+ }
+ }
+ return ret;
+ },
shadowClass: 'wsshadow-'+(Date.now()),
implement: function(elem, type){
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
diff --git a/public/webshims/shims/combos/30.js b/public/webshims/shims/combos/30.js
index e727d2d4..c286f446 100644
--- a/public/webshims/shims/combos/30.js
+++ b/public/webshims/shims/combos/30.js
@@ -60,7 +60,6 @@
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
webshims.assumeARIA = true;
@@ -91,7 +90,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
//shortcus
- var modules = webshims.modules;
var listReg = /\s*,\s*/;
//proxying attribute
@@ -476,8 +474,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
(tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
}
};
-
- var elementExtends = {};
+
return {
createTmpCache: function(nodeName){
if($.isDOMReady){
@@ -529,6 +526,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
$.extend(webshims, {
+ xProps: havePolyfill,
getID: (function(){
var ID = new Date().getTime();
return function(elem){
@@ -542,6 +540,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return id;
};
})(),
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
+
+ prefixed: function (prop, obj){
+ var i, testProp;
+ var ret = false;
+ if(obj[prop]){
+ ret = prop;
+ }
+ if(!ret){
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
+ for(i = 0; i < webshims.domPrefixes.length; i++){
+ testProp = webshims.domPrefixes[i]+prop;
+ if(testProp in obj){
+ ret = testProp;
+ break;
+ }
+ }
+ }
+ return ret;
+ },
shadowClass: 'wsshadow-'+(Date.now()),
implement: function(elem, type){
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
diff --git a/public/webshims/shims/combos/31.js b/public/webshims/shims/combos/31.js
index c9a8430b..2e084432 100644
--- a/public/webshims/shims/combos/31.js
+++ b/public/webshims/shims/combos/31.js
@@ -60,7 +60,6 @@
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
webshims.assumeARIA = true;
@@ -91,7 +90,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
//shortcus
- var modules = webshims.modules;
var listReg = /\s*,\s*/;
//proxying attribute
@@ -476,8 +474,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
(tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
}
};
-
- var elementExtends = {};
+
return {
createTmpCache: function(nodeName){
if($.isDOMReady){
@@ -529,6 +526,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
$.extend(webshims, {
+ xProps: havePolyfill,
getID: (function(){
var ID = new Date().getTime();
return function(elem){
@@ -542,6 +540,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return id;
};
})(),
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
+
+ prefixed: function (prop, obj){
+ var i, testProp;
+ var ret = false;
+ if(obj[prop]){
+ ret = prop;
+ }
+ if(!ret){
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
+ for(i = 0; i < webshims.domPrefixes.length; i++){
+ testProp = webshims.domPrefixes[i]+prop;
+ if(testProp in obj){
+ ret = testProp;
+ break;
+ }
+ }
+ }
+ return ret;
+ },
shadowClass: 'wsshadow-'+(Date.now()),
implement: function(elem, type){
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
diff --git a/public/webshims/shims/combos/34.js b/public/webshims/shims/combos/34.js
index e1d716e9..bedbe63e 100644
--- a/public/webshims/shims/combos/34.js
+++ b/public/webshims/shims/combos/34.js
@@ -60,7 +60,6 @@
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
webshims.assumeARIA = true;
@@ -91,7 +90,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
//shortcus
- var modules = webshims.modules;
var listReg = /\s*,\s*/;
//proxying attribute
@@ -476,8 +474,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
(tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
}
};
-
- var elementExtends = {};
+
return {
createTmpCache: function(nodeName){
if($.isDOMReady){
@@ -529,6 +526,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
$.extend(webshims, {
+ xProps: havePolyfill,
getID: (function(){
var ID = new Date().getTime();
return function(elem){
@@ -542,6 +540,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return id;
};
})(),
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
+
+ prefixed: function (prop, obj){
+ var i, testProp;
+ var ret = false;
+ if(obj[prop]){
+ ret = prop;
+ }
+ if(!ret){
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
+ for(i = 0; i < webshims.domPrefixes.length; i++){
+ testProp = webshims.domPrefixes[i]+prop;
+ if(testProp in obj){
+ ret = testProp;
+ break;
+ }
+ }
+ }
+ return ret;
+ },
shadowClass: 'wsshadow-'+(Date.now()),
implement: function(elem, type){
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
@@ -1669,11 +1687,29 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
webshims.error('you must provide a language for track in subtitles state');
}
obj.__wsmode = obj.mode;
+
+ webshims.defineProperty(obj, '_wsUpdateMode', {
+ value: function(){
+ $(mediaelem).triggerHandler('updatetrackdisplay');
+ },
+ enumerable: false
+ });
}
return obj;
};
+ if(!$.propHooks.mode){
+ $.propHooks.mode = {
+ set: function(obj, value){
+ obj.mode = value;
+ if(obj._wsUpdateMode && obj._wsUpdateMode.call){
+ obj._wsUpdateMode();
+ }
+ return obj.mode;
+ }
+ };
+ }
/*
taken from:
@@ -1924,7 +1960,7 @@ modified for webshims
var name = copyName[copyProp] || copyProp;
webshims.onNodeNamesPropertyModify('track', copyProp, function(){
var trackData = webshims.data(this, 'trackData');
- var track = this;
+
if(trackData){
if(copyProp == 'kind'){
refreshTrack(this, trackData);
diff --git a/public/webshims/shims/combos/4.js b/public/webshims/shims/combos/4.js
index 55c0fc60..785741a4 100644
--- a/public/webshims/shims/combos/4.js
+++ b/public/webshims/shims/combos/4.js
@@ -60,7 +60,6 @@
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
webshims.assumeARIA = true;
@@ -91,7 +90,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
//shortcus
- var modules = webshims.modules;
var listReg = /\s*,\s*/;
//proxying attribute
@@ -476,8 +474,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
(tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
}
};
-
- var elementExtends = {};
+
return {
createTmpCache: function(nodeName){
if($.isDOMReady){
@@ -529,6 +526,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
$.extend(webshims, {
+ xProps: havePolyfill,
getID: (function(){
var ID = new Date().getTime();
return function(elem){
@@ -542,6 +540,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return id;
};
})(),
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
+
+ prefixed: function (prop, obj){
+ var i, testProp;
+ var ret = false;
+ if(obj[prop]){
+ ret = prop;
+ }
+ if(!ret){
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
+ for(i = 0; i < webshims.domPrefixes.length; i++){
+ testProp = webshims.domPrefixes[i]+prop;
+ if(testProp in obj){
+ ret = testProp;
+ break;
+ }
+ }
+ }
+ return ret;
+ },
shadowClass: 'wsshadow-'+(Date.now()),
implement: function(elem, type){
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
diff --git a/public/webshims/shims/combos/5.js b/public/webshims/shims/combos/5.js
index d0e17a45..09538282 100644
--- a/public/webshims/shims/combos/5.js
+++ b/public/webshims/shims/combos/5.js
@@ -1869,22 +1869,36 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
}
return val;
},
- time: function(val){
- var fVal;
- if(val && curCfg.meridian){
+ time: function(val, o, noCorrect){
+ var fVal, i;
+ if(val){
+
val = val.split(':');
- fVal = (val[0] * 1);
- if(fVal && fVal >= 12){
- val[0] = addZero(fVal - 12+'');
- fVal = 1;
-
- } else {
- fVal = 0;
+ if(curCfg.meridian){
+ fVal = (val[0] * 1);
+ if(fVal && fVal >= 12){
+ val[0] = addZero(fVal - 12+'');
+ fVal = 1;
+ } else {
+ fVal = 0;
+ }
+ if(val[0] === '00'){
+ val[0] = '12';
+ }
}
- if(val[0] === '00'){
- val[0] = '12';
+ if(!noCorrect){
+ for(i = 0; i < val.length; i++){
+ val[i] = addZero(val[i]);
+ }
+
+ if(!val[1]){
+ val[1] = '00';
+ }
+ }
+ val = $.trim(val.join(':'));
+ if(fVal != null && curCfg.meridian){
+ val += ' '+curCfg.meridian[fVal];
}
- val = $.trim(val.join(':')) + ' '+ curCfg.meridian[fVal];
}
return val;
},
@@ -1973,12 +1987,15 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
var fVal;
if(val && curCfg.meridian){
val = val.toUpperCase();
- if(val.substr(0,2) === "12"){
+ if(val.substr(0,2) === "12"){
val = "00" + val.substr(2);
}
+
if(val.indexOf(curCfg.meridian[1]) != -1){
+
val = val.split(':');
- fVal = (val[0] * 1);
+ fVal = (val[0].replace(curCfg.meridian[1], '') * 1);
+
if(!isNaN(fVal)){
val[0] = fVal + 12;
}
diff --git a/public/webshims/shims/combos/6.js b/public/webshims/shims/combos/6.js
index 221b886a..db0ae019 100644
--- a/public/webshims/shims/combos/6.js
+++ b/public/webshims/shims/combos/6.js
@@ -1869,22 +1869,36 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
}
return val;
},
- time: function(val){
- var fVal;
- if(val && curCfg.meridian){
+ time: function(val, o, noCorrect){
+ var fVal, i;
+ if(val){
+
val = val.split(':');
- fVal = (val[0] * 1);
- if(fVal && fVal >= 12){
- val[0] = addZero(fVal - 12+'');
- fVal = 1;
-
- } else {
- fVal = 0;
+ if(curCfg.meridian){
+ fVal = (val[0] * 1);
+ if(fVal && fVal >= 12){
+ val[0] = addZero(fVal - 12+'');
+ fVal = 1;
+ } else {
+ fVal = 0;
+ }
+ if(val[0] === '00'){
+ val[0] = '12';
+ }
}
- if(val[0] === '00'){
- val[0] = '12';
+ if(!noCorrect){
+ for(i = 0; i < val.length; i++){
+ val[i] = addZero(val[i]);
+ }
+
+ if(!val[1]){
+ val[1] = '00';
+ }
+ }
+ val = $.trim(val.join(':'));
+ if(fVal != null && curCfg.meridian){
+ val += ' '+curCfg.meridian[fVal];
}
- val = $.trim(val.join(':')) + ' '+ curCfg.meridian[fVal];
}
return val;
},
@@ -1973,12 +1987,15 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
var fVal;
if(val && curCfg.meridian){
val = val.toUpperCase();
- if(val.substr(0,2) === "12"){
+ if(val.substr(0,2) === "12"){
val = "00" + val.substr(2);
}
+
if(val.indexOf(curCfg.meridian[1]) != -1){
+
val = val.split(':');
- fVal = (val[0] * 1);
+ fVal = (val[0].replace(curCfg.meridian[1], '') * 1);
+
if(!isNaN(fVal)){
val[0] = fVal + 12;
}
diff --git a/public/webshims/shims/combos/7.js b/public/webshims/shims/combos/7.js
index 2fbf0b80..b128ff2c 100644
--- a/public/webshims/shims/combos/7.js
+++ b/public/webshims/shims/combos/7.js
@@ -283,7 +283,6 @@ webshims.isReady('swfmini', true);
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
webshims.assumeARIA = true;
@@ -314,7 +313,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
//shortcus
- var modules = webshims.modules;
var listReg = /\s*,\s*/;
//proxying attribute
@@ -699,8 +697,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
(tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
}
};
-
- var elementExtends = {};
+
return {
createTmpCache: function(nodeName){
if($.isDOMReady){
@@ -752,6 +749,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
$.extend(webshims, {
+ xProps: havePolyfill,
getID: (function(){
var ID = new Date().getTime();
return function(elem){
@@ -765,6 +763,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return id;
};
})(),
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
+
+ prefixed: function (prop, obj){
+ var i, testProp;
+ var ret = false;
+ if(obj[prop]){
+ ret = prop;
+ }
+ if(!ret){
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
+ for(i = 0; i < webshims.domPrefixes.length; i++){
+ testProp = webshims.domPrefixes[i]+prop;
+ if(testProp in obj){
+ ret = testProp;
+ break;
+ }
+ }
+ }
+ return ret;
+ },
shadowClass: 'wsshadow-'+(Date.now()),
implement: function(elem, type){
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
@@ -2429,7 +2447,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
- var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
+ var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
var mediaelement = webshims.mediaelement;
mediaelement.parseRtmp = function(data){
@@ -2539,6 +2557,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
loadYt();
}
};
+
webshims.addPolyfill('mediaelement-yt', {
test: !hasYt,
@@ -2583,7 +2602,16 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
if(src.indexOf('youtube.com/watch?') != -1 || src.indexOf('youtube.com/v/') != -1){
return 'video/youtube';
}
- if(src.indexOf('rtmp') === 0){
+
+ if(!src.indexOf('mediastream:') || !src.indexOf('blob:http')){
+ return 'usermedia';
+ }
+
+ if(!src.indexOf('webshimstream')){
+ return 'jarisplayer/stream';
+ }
+
+ if(!src.indexOf('rtmp')){
return nodeName+'/rtmp';
}
src = src.split('?')[0].split('#')[0].split('.');
@@ -2600,28 +2628,24 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
};
- mediaelement.srces = function(mediaElem, srces){
+ mediaelement.srces = function(mediaElem){
+ var srces = [];
mediaElem = $(mediaElem);
- if(!srces){
- srces = [];
- var nodeName = mediaElem[0].nodeName.toLowerCase();
- var src = getSrcObj(mediaElem, nodeName);
-
- if(!src.src){
- $('source', mediaElem).each(function(){
- src = getSrcObj(this, nodeName);
- if(src.src){srces.push(src);}
- });
- } else {
- srces.push(src);
- }
- return srces;
+ var nodeName = mediaElem[0].nodeName.toLowerCase();
+ var src = getSrcObj(mediaElem, nodeName);
+
+ if(!src.src){
+ $('source', mediaElem).each(function(){
+ src = getSrcObj(this, nodeName);
+ if(src.src){srces.push(src);}
+ });
} else {
- webshims.error('setting sources was removed.');
+ srces.push(src);
}
+ return srces;
};
- mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
+ mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'jarisplayer/stream', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
mediaelement.canThirdPlaySrces = function(mediaElem, srces){
var ret = '';
@@ -2651,7 +2675,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
srces = srces || mediaelement.srces(mediaElem);
$.each(srces, function(i, src){
- if(src.type && nativeCanPlay.call(mediaElem[0], src.type) ){
+ if(src.type == 'usermedia' || (src.type && nativeCanPlay.call(mediaElem[0], src.type)) ){
ret = src;
return false;
}
diff --git a/public/webshims/shims/combos/8.js b/public/webshims/shims/combos/8.js
index 9d792249..820250d8 100644
--- a/public/webshims/shims/combos/8.js
+++ b/public/webshims/shims/combos/8.js
@@ -283,7 +283,6 @@ webshims.isReady('swfmini', true);
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
webshims.assumeARIA = true;
@@ -314,7 +313,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
//shortcus
- var modules = webshims.modules;
var listReg = /\s*,\s*/;
//proxying attribute
@@ -699,8 +697,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
(tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
}
};
-
- var elementExtends = {};
+
return {
createTmpCache: function(nodeName){
if($.isDOMReady){
@@ -752,6 +749,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
$.extend(webshims, {
+ xProps: havePolyfill,
getID: (function(){
var ID = new Date().getTime();
return function(elem){
@@ -765,6 +763,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return id;
};
})(),
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
+
+ prefixed: function (prop, obj){
+ var i, testProp;
+ var ret = false;
+ if(obj[prop]){
+ ret = prop;
+ }
+ if(!ret){
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
+ for(i = 0; i < webshims.domPrefixes.length; i++){
+ testProp = webshims.domPrefixes[i]+prop;
+ if(testProp in obj){
+ ret = testProp;
+ break;
+ }
+ }
+ }
+ return ret;
+ },
shadowClass: 'wsshadow-'+(Date.now()),
implement: function(elem, type){
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
@@ -2132,7 +2150,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
- var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
+ var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
var mediaelement = webshims.mediaelement;
mediaelement.parseRtmp = function(data){
@@ -2242,6 +2260,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
loadYt();
}
};
+
webshims.addPolyfill('mediaelement-yt', {
test: !hasYt,
@@ -2286,7 +2305,16 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
if(src.indexOf('youtube.com/watch?') != -1 || src.indexOf('youtube.com/v/') != -1){
return 'video/youtube';
}
- if(src.indexOf('rtmp') === 0){
+
+ if(!src.indexOf('mediastream:') || !src.indexOf('blob:http')){
+ return 'usermedia';
+ }
+
+ if(!src.indexOf('webshimstream')){
+ return 'jarisplayer/stream';
+ }
+
+ if(!src.indexOf('rtmp')){
return nodeName+'/rtmp';
}
src = src.split('?')[0].split('#')[0].split('.');
@@ -2303,28 +2331,24 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
};
- mediaelement.srces = function(mediaElem, srces){
+ mediaelement.srces = function(mediaElem){
+ var srces = [];
mediaElem = $(mediaElem);
- if(!srces){
- srces = [];
- var nodeName = mediaElem[0].nodeName.toLowerCase();
- var src = getSrcObj(mediaElem, nodeName);
-
- if(!src.src){
- $('source', mediaElem).each(function(){
- src = getSrcObj(this, nodeName);
- if(src.src){srces.push(src);}
- });
- } else {
- srces.push(src);
- }
- return srces;
+ var nodeName = mediaElem[0].nodeName.toLowerCase();
+ var src = getSrcObj(mediaElem, nodeName);
+
+ if(!src.src){
+ $('source', mediaElem).each(function(){
+ src = getSrcObj(this, nodeName);
+ if(src.src){srces.push(src);}
+ });
} else {
- webshims.error('setting sources was removed.');
+ srces.push(src);
}
+ return srces;
};
- mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
+ mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'jarisplayer/stream', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
mediaelement.canThirdPlaySrces = function(mediaElem, srces){
var ret = '';
@@ -2354,7 +2378,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
srces = srces || mediaelement.srces(mediaElem);
$.each(srces, function(i, src){
- if(src.type && nativeCanPlay.call(mediaElem[0], src.type) ){
+ if(src.type == 'usermedia' || (src.type && nativeCanPlay.call(mediaElem[0], src.type)) ){
ret = src;
return false;
}
diff --git a/public/webshims/shims/combos/9.js b/public/webshims/shims/combos/9.js
index 7cce200f..342012d7 100644
--- a/public/webshims/shims/combos/9.js
+++ b/public/webshims/shims/combos/9.js
@@ -60,7 +60,6 @@
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
webshims.assumeARIA = true;
@@ -91,7 +90,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
//shortcus
- var modules = webshims.modules;
var listReg = /\s*,\s*/;
//proxying attribute
@@ -476,8 +474,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
(tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
}
};
-
- var elementExtends = {};
+
return {
createTmpCache: function(nodeName){
if($.isDOMReady){
@@ -529,6 +526,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
$.extend(webshims, {
+ xProps: havePolyfill,
getID: (function(){
var ID = new Date().getTime();
return function(elem){
@@ -542,6 +540,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return id;
};
})(),
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
+
+ prefixed: function (prop, obj){
+ var i, testProp;
+ var ret = false;
+ if(obj[prop]){
+ ret = prop;
+ }
+ if(!ret){
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
+ for(i = 0; i < webshims.domPrefixes.length; i++){
+ testProp = webshims.domPrefixes[i]+prop;
+ if(testProp in obj){
+ ret = testProp;
+ break;
+ }
+ }
+ }
+ return ret;
+ },
shadowClass: 'wsshadow-'+(Date.now()),
implement: function(elem, type){
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
@@ -2255,22 +2273,36 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
return val;
},
- time: function(val){
- var fVal;
- if(val && curCfg.meridian){
+ time: function(val, o, noCorrect){
+ var fVal, i;
+ if(val){
+
val = val.split(':');
- fVal = (val[0] * 1);
- if(fVal && fVal >= 12){
- val[0] = addZero(fVal - 12+'');
- fVal = 1;
-
- } else {
- fVal = 0;
+ if(curCfg.meridian){
+ fVal = (val[0] * 1);
+ if(fVal && fVal >= 12){
+ val[0] = addZero(fVal - 12+'');
+ fVal = 1;
+ } else {
+ fVal = 0;
+ }
+ if(val[0] === '00'){
+ val[0] = '12';
+ }
}
- if(val[0] === '00'){
- val[0] = '12';
+ if(!noCorrect){
+ for(i = 0; i < val.length; i++){
+ val[i] = addZero(val[i]);
+ }
+
+ if(!val[1]){
+ val[1] = '00';
+ }
+ }
+ val = $.trim(val.join(':'));
+ if(fVal != null && curCfg.meridian){
+ val += ' '+curCfg.meridian[fVal];
}
- val = $.trim(val.join(':')) + ' '+ curCfg.meridian[fVal];
}
return val;
},
@@ -2359,12 +2391,15 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
var fVal;
if(val && curCfg.meridian){
val = val.toUpperCase();
- if(val.substr(0,2) === "12"){
+ if(val.substr(0,2) === "12"){
val = "00" + val.substr(2);
}
+
if(val.indexOf(curCfg.meridian[1]) != -1){
+
val = val.split(':');
- fVal = (val[0] * 1);
+ fVal = (val[0].replace(curCfg.meridian[1], '') * 1);
+
if(!isNaN(fVal)){
val[0] = fVal + 12;
}
diff --git a/public/webshims/shims/combos/98.js b/public/webshims/shims/combos/98.js
index d5c33ef5..96b97139 100644
--- a/public/webshims/shims/combos/98.js
+++ b/public/webshims/shims/combos/98.js
@@ -473,7 +473,9 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
return cache[template] || '';
};
})();
- var ios6 = /iP(hone|od|ad)/i.test(navigator.platform) && parseInt(((navigator.appVersion).match(/OS (\d+)_\d+/) || ['','8'])[1], 10) < 7;
+ var ios = /iP(hone|od|ad)/i.test(navigator.platform);
+ var ios6 = ios && parseInt(((navigator.appVersion).match(/OS (\d+)_\d+/) || ['','8'])[1], 10) < 7;
+ var hasYtBug = (!window.Modernizr || !Modernizr.videoautoplay) && (ios || /android/i.test(navigator.userAgent));
var loadLazy = function(){
if(!loadLazy.loaded){
loadLazy.loaded = true;
@@ -500,7 +502,8 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
};
webshims.loader.addModule('mediacontrols-lazy', {
- src: 'jme/mediacontrols-lazy'
+ src: 'jme/mediacontrols-lazy',
+ d: ['dom-support']
});
var userActivity = {
@@ -523,6 +526,11 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
data.media.removeAttr('controls');
data.media.mediaLoad();
}
+
+ if(hasYtBug){
+ data.player.addClass('has-yt-bug');
+ }
+
data.media.prop('controls', false);
structure = getBarHtml();
data._controlbar = $( options.barStructure );
@@ -569,7 +577,7 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
})();
var $poster = $('
').insertAfter(data.media);
var posterState = (function(){
- var lastPosterState, lastYoutubeState, lastPoster;
+ var lastPosterState, lastYoutubeState, lastPoster, isYt;
var hasFlash = window.swfmini && swfmini.hasFlashPlayerVersion('10.0.3');
var regYt = /youtube\.com\/[watch\?|v\/]+/i;
@@ -585,8 +593,10 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
data.player.addClass('no-backgroundsize');
}
data.media.on('play playing waiting seeked seeking', function(e){
-
- if(isInitial){
+ if(!e){
+ e.type = 'playing';
+ }
+ if(isInitial && (!isYt || !hasYtBug || e.type == 'playing' || data.media.prop('readyState') > 1)){
isInitial = false;
data.player.removeClass('initial-state');
}
@@ -602,12 +612,16 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
data.player.addClass('ended-state');
}
});
+
return function(){
+ var hasYt;
var poster = data.media.attr('poster');
var hasPoster = !!poster;
var currentSrc = data.media.prop('currentSrc') || '';
- var isYt = regYt.test(currentSrc);
- var hasYt = (hasFlash && hasPoster) ? false : isYt;
+
+ isYt = regYt.test(currentSrc);
+
+ hasYt = (hasFlash && hasPoster) ? false : isYt;
if(!hasPoster && isYt){
poster = currentSrc.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/ ]{11})/i) || '';
@@ -637,6 +651,9 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
data.player.removeClass('ended-state');
}
+ //https://code.google.com/p/gdata-issues/issues/detail?id=5415
+ data.player[isYt ? 'addClass' : 'removeClass']('yt-video');
+
if(lastYoutubeState !== hasYt){
lastYoutubeState = hasYt;
data.player[hasYt ? 'addClass' : 'removeClass']('has-ytposter');
diff --git a/public/webshims/shims/combos/99.js b/public/webshims/shims/combos/99.js
index cb811d85..dd0a805d 100644
--- a/public/webshims/shims/combos/99.js
+++ b/public/webshims/shims/combos/99.js
@@ -473,7 +473,9 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
return cache[template] || '';
};
})();
- var ios6 = /iP(hone|od|ad)/i.test(navigator.platform) && parseInt(((navigator.appVersion).match(/OS (\d+)_\d+/) || ['','8'])[1], 10) < 7;
+ var ios = /iP(hone|od|ad)/i.test(navigator.platform);
+ var ios6 = ios && parseInt(((navigator.appVersion).match(/OS (\d+)_\d+/) || ['','8'])[1], 10) < 7;
+ var hasYtBug = (!window.Modernizr || !Modernizr.videoautoplay) && (ios || /android/i.test(navigator.userAgent));
var loadLazy = function(){
if(!loadLazy.loaded){
loadLazy.loaded = true;
@@ -500,7 +502,8 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
};
webshims.loader.addModule('mediacontrols-lazy', {
- src: 'jme/mediacontrols-lazy'
+ src: 'jme/mediacontrols-lazy',
+ d: ['dom-support']
});
var userActivity = {
@@ -523,6 +526,11 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
data.media.removeAttr('controls');
data.media.mediaLoad();
}
+
+ if(hasYtBug){
+ data.player.addClass('has-yt-bug');
+ }
+
data.media.prop('controls', false);
structure = getBarHtml();
data._controlbar = $( options.barStructure );
@@ -569,7 +577,7 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
})();
var $poster = $('
').insertAfter(data.media);
var posterState = (function(){
- var lastPosterState, lastYoutubeState, lastPoster;
+ var lastPosterState, lastYoutubeState, lastPoster, isYt;
var hasFlash = window.swfmini && swfmini.hasFlashPlayerVersion('10.0.3');
var regYt = /youtube\.com\/[watch\?|v\/]+/i;
@@ -585,8 +593,10 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
data.player.addClass('no-backgroundsize');
}
data.media.on('play playing waiting seeked seeking', function(e){
-
- if(isInitial){
+ if(!e){
+ e.type = 'playing';
+ }
+ if(isInitial && (!isYt || !hasYtBug || e.type == 'playing' || data.media.prop('readyState') > 1)){
isInitial = false;
data.player.removeClass('initial-state');
}
@@ -602,12 +612,16 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
data.player.addClass('ended-state');
}
});
+
return function(){
+ var hasYt;
var poster = data.media.attr('poster');
var hasPoster = !!poster;
var currentSrc = data.media.prop('currentSrc') || '';
- var isYt = regYt.test(currentSrc);
- var hasYt = (hasFlash && hasPoster) ? false : isYt;
+
+ isYt = regYt.test(currentSrc);
+
+ hasYt = (hasFlash && hasPoster) ? false : isYt;
if(!hasPoster && isYt){
poster = currentSrc.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/ ]{11})/i) || '';
@@ -637,6 +651,9 @@ webshims.register('jmebase', function($, webshims, window, doc, undefined){
data.player.removeClass('ended-state');
}
+ //https://code.google.com/p/gdata-issues/issues/detail?id=5415
+ data.player[isYt ? 'addClass' : 'removeClass']('yt-video');
+
if(lastYoutubeState !== hasYt){
lastYoutubeState = hasYt;
data.player[hasYt ? 'addClass' : 'removeClass']('has-ytposter');
diff --git a/public/webshims/shims/dom-extend.js b/public/webshims/shims/dom-extend.js
index ac2ba763..83594f13 100644
--- a/public/webshims/shims/dom-extend.js
+++ b/public/webshims/shims/dom-extend.js
@@ -60,7 +60,6 @@
webshims.register('dom-extend', function($, webshims, window, document, undefined){
"use strict";
var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
var has = Object.prototype.hasOwnProperty;
webshims.assumeARIA = true;
@@ -91,7 +90,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
}
//shortcus
- var modules = webshims.modules;
var listReg = /\s*,\s*/;
//proxying attribute
@@ -476,8 +474,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
(tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
}
};
-
- var elementExtends = {};
+
return {
createTmpCache: function(nodeName){
if($.isDOMReady){
@@ -529,6 +526,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
};
$.extend(webshims, {
+ xProps: havePolyfill,
getID: (function(){
var ID = new Date().getTime();
return function(elem){
@@ -542,6 +540,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
return id;
};
})(),
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
+
+ prefixed: function (prop, obj){
+ var i, testProp;
+ var ret = false;
+ if(obj[prop]){
+ ret = prop;
+ }
+ if(!ret){
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
+ for(i = 0; i < webshims.domPrefixes.length; i++){
+ testProp = webshims.domPrefixes[i]+prop;
+ if(testProp in obj){
+ ret = testProp;
+ break;
+ }
+ }
+ }
+ return ret;
+ },
shadowClass: 'wsshadow-'+(Date.now()),
implement: function(elem, type){
var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
diff --git a/public/webshims/shims/es5.js b/public/webshims/shims/es5.js
index 6fc6836d..4d51acf4 100644
--- a/public/webshims/shims/es5.js
+++ b/public/webshims/shims/es5.js
@@ -1455,7 +1455,9 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
var descProps = ['configurable', 'enumerable', 'writable'];
shims.defineProperty = function(proto, property, descriptor){
if(typeof descriptor != "object" || descriptor === null){return proto;}
-
+ if(Object.defineProperty){
+ try { return Object.defineProperty(proto, property, descriptor); } catch (e) {}
+ }
if(owns(descriptor, "value")){
proto[property] = descriptor.value;
return proto;
diff --git a/public/webshims/shims/es6.js b/public/webshims/shims/es6.js
index 1fdca9bb..595f0b26 100755
--- a/public/webshims/shims/es6.js
+++ b/public/webshims/shims/es6.js
@@ -1878,10 +1878,6 @@ webshim.register('es6', function($, webshim, window, document, undefined){
}
};
- if (typeof define === 'function' && define.amd) {
- define(main); // RequireJS
- } else {
- main(); // CommonJS and