webshims-rails 1.10.6 → 1.10.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/polyfiller.js +14 -7
- data/vendor/assets/javascripts/webshims/shims/color-picker.js +1 -0
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +153 -155
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +168 -136
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +116 -44
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +100 -95
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +100 -95
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +51 -91
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +129 -232
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +228 -326
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +116 -44
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +116 -44
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +210 -214
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +204 -246
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +210 -214
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +59 -28
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +100 -95
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +210 -214
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +51 -91
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +110 -119
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +6 -0
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +126 -156
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +126 -155
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +104 -151
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +73 -96
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +116 -44
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +116 -44
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +226 -250
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +226 -250
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +168 -136
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +51 -91
- data/vendor/assets/javascripts/webshims/shims/form-core.js +53 -60
- data/vendor/assets/javascripts/webshims/shims/form-message.js +22 -5
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +87 -30
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +2 -76
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +18 -8
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +100 -95
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +59 -28
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +9 -2
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +29 -14
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +21 -7
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +30 -15
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +6 -0
- metadata +2 -2
@@ -814,10 +814,15 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
814
814
|
if(!$.parseHTML){
|
815
815
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
816
816
|
}
|
817
|
+
|
818
|
+
if(webshims.cfg.extendNative == 1){
|
819
|
+
webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
820
|
+
}
|
821
|
+
|
817
822
|
if (!webshims.cfg.no$Switch) {
|
818
823
|
var switch$ = function(){
|
819
824
|
if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
|
820
|
-
webshims.error("jQuery was included more than once. Make sure to include it only once! Webshims and other Plugins might not work properly
|
825
|
+
webshims.error("jQuery was included more than once. Make sure to include it only once or try the $.noConflict(extreme) feature! Webshims and other Plugins might not work properly..");
|
821
826
|
if (window.$) {
|
822
827
|
window.$ = webshims.$;
|
823
828
|
}
|
@@ -835,7 +840,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
835
840
|
};
|
836
841
|
switch$();
|
837
842
|
setTimeout(switch$, 90);
|
843
|
+
webshims.ready('DOM', switch$);
|
838
844
|
$(switch$);
|
845
|
+
webshims.ready('WINDOWLOAD', switch$);
|
846
|
+
|
839
847
|
}
|
840
848
|
// (function(){
|
841
849
|
// var hostNames = {
|
@@ -943,6 +951,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
943
951
|
$(evtDel).off(evt, fn);
|
944
952
|
}
|
945
953
|
});
|
954
|
+
return this;
|
946
955
|
};
|
947
956
|
|
948
957
|
var dataID = '_webshimsLib'+ (Math.round(Math.random() * 1000));
|
@@ -977,57 +986,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
977
986
|
};
|
978
987
|
});
|
979
988
|
|
980
|
-
if($.Tween.propHooks._default && $.css){
|
981
|
-
(function(){
|
982
|
-
var isjQ8 = false;
|
983
|
-
try {
|
984
|
-
isjQ8 = $.css($('<b style="width: 10px" />')[0], 'width', '') == '10px';
|
985
|
-
} catch(er){
|
986
|
-
webshims.error(er);
|
987
|
-
}
|
988
|
-
var css = isjQ8 ?
|
989
|
-
function(elem, prop){
|
990
|
-
return $.css( elem, prop, false, "" );
|
991
|
-
} :
|
992
|
-
function(elem, prop){
|
993
|
-
return $.css( elem, prop, "" );
|
994
|
-
}
|
995
|
-
;
|
996
|
-
|
997
|
-
$.extend($.Tween.propHooks._default, {
|
998
|
-
get: function( tween ) {
|
999
|
-
var result;
|
1000
|
-
|
1001
|
-
if ( (tween.elem[ tween.prop ] != null || havePolyfill[ tween.prop ]) &&
|
1002
|
-
(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
|
1003
|
-
return havePolyfill[ tween.prop ] ? $.prop(tween.elem, tween.prop) : tween.elem[ tween.prop ];
|
1004
|
-
}
|
1005
|
-
|
1006
|
-
// passing an empty string as a 3rd parameter to .css will automatically
|
1007
|
-
// attempt a parseFloat and fallback to a string if the parse fails
|
1008
|
-
// so, simple values such as "10px" are parsed to Float.
|
1009
|
-
// complex values such as "rotate(1rad)" are returned as is.
|
1010
|
-
result = css( tween.elem, tween.prop );
|
1011
|
-
// Empty strings, null, undefined and "auto" are converted to 0.
|
1012
|
-
return !result || result === "auto" ? 0 : result;
|
1013
|
-
},
|
1014
|
-
set: function( tween ) {
|
1015
|
-
// use step hook for back compat - use cssHook if its there - use .style if its
|
1016
|
-
// available and use plain properties where available
|
1017
|
-
if ( jQuery.fx.step[ tween.prop ] ) {
|
1018
|
-
jQuery.fx.step[ tween.prop ]( tween );
|
1019
|
-
} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
|
1020
|
-
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
|
1021
|
-
} else if( !havePolyfill[ tween.prop ] ) {
|
1022
|
-
tween.elem[ tween.prop ] = tween.now;
|
1023
|
-
} else {
|
1024
|
-
$.prop(tween.elem, tween.prop, tween.now);
|
1025
|
-
}
|
1026
|
-
}
|
1027
|
-
});
|
1028
|
-
})();
|
1029
|
-
}
|
1030
|
-
|
1031
989
|
|
1032
990
|
['removeAttr', 'prop', 'attr'].forEach(function(type){
|
1033
991
|
olds[type] = $[type];
|
@@ -1431,48 +1389,50 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1431
1389
|
});
|
1432
1390
|
};
|
1433
1391
|
return function(nativeElem, shadowElem, opts){
|
1434
|
-
|
1435
|
-
|
1436
|
-
nativeElem
|
1437
|
-
|
1438
|
-
if(shadowElem.jquery){
|
1439
|
-
shadowElem = shadowElem[0];
|
1440
|
-
}
|
1441
|
-
var nativeData = $.data(nativeElem, dataID) || $.data(nativeElem, dataID, {});
|
1442
|
-
var shadowData = $.data(shadowElem, dataID) || $.data(shadowElem, dataID, {});
|
1443
|
-
var shadowFocusElementData = {};
|
1444
|
-
if(!opts.shadowFocusElement){
|
1445
|
-
opts.shadowFocusElement = shadowElem;
|
1446
|
-
} else if(opts.shadowFocusElement){
|
1447
|
-
if(opts.shadowFocusElement.jquery){
|
1448
|
-
opts.shadowFocusElement = opts.shadowFocusElement[0];
|
1392
|
+
if(nativeElem && shadowElem){
|
1393
|
+
opts = opts || {};
|
1394
|
+
if(nativeElem.jquery){
|
1395
|
+
nativeElem = nativeElem[0];
|
1449
1396
|
}
|
1450
|
-
|
1451
|
-
|
1452
|
-
|
1453
|
-
$(nativeElem).on('remove', function(e){
|
1454
|
-
if (!e.originalEvent) {
|
1455
|
-
$(shadowElem).remove();
|
1397
|
+
if(shadowElem.jquery){
|
1398
|
+
shadowElem = shadowElem[0];
|
1456
1399
|
}
|
1457
|
-
|
1458
|
-
|
1459
|
-
|
1460
|
-
|
1461
|
-
|
1462
|
-
|
1463
|
-
|
1464
|
-
|
1465
|
-
|
1466
|
-
|
1467
|
-
|
1468
|
-
|
1400
|
+
var nativeData = $.data(nativeElem, dataID) || $.data(nativeElem, dataID, {});
|
1401
|
+
var shadowData = $.data(shadowElem, dataID) || $.data(shadowElem, dataID, {});
|
1402
|
+
var shadowFocusElementData = {};
|
1403
|
+
if(!opts.shadowFocusElement){
|
1404
|
+
opts.shadowFocusElement = shadowElem;
|
1405
|
+
} else if(opts.shadowFocusElement){
|
1406
|
+
if(opts.shadowFocusElement.jquery){
|
1407
|
+
opts.shadowFocusElement = opts.shadowFocusElement[0];
|
1408
|
+
}
|
1409
|
+
shadowFocusElementData = $.data(opts.shadowFocusElement, dataID) || $.data(opts.shadowFocusElement, dataID, shadowFocusElementData);
|
1410
|
+
}
|
1411
|
+
|
1412
|
+
$(nativeElem).on('remove', function(e){
|
1413
|
+
if (!e.originalEvent) {
|
1414
|
+
$(shadowElem).remove();
|
1415
|
+
}
|
1469
1416
|
});
|
1417
|
+
|
1418
|
+
nativeData.hasShadow = shadowElem;
|
1419
|
+
shadowFocusElementData.nativeElement = shadowData.nativeElement = nativeElem;
|
1420
|
+
shadowFocusElementData.shadowData = shadowData.shadowData = nativeData.shadowData = {
|
1421
|
+
nativeElement: nativeElem,
|
1422
|
+
shadowElement: shadowElem,
|
1423
|
+
shadowFocusElement: opts.shadowFocusElement
|
1424
|
+
};
|
1425
|
+
if(opts.shadowChilds){
|
1426
|
+
opts.shadowChilds.each(function(){
|
1427
|
+
elementData(this, 'shadowData', shadowData.shadowData);
|
1428
|
+
});
|
1429
|
+
}
|
1430
|
+
|
1431
|
+
if(opts.data){
|
1432
|
+
shadowFocusElementData.shadowData.data = shadowData.shadowData.data = nativeData.shadowData.data = opts.data;
|
1433
|
+
}
|
1434
|
+
opts = null;
|
1470
1435
|
}
|
1471
|
-
|
1472
|
-
if(opts.data){
|
1473
|
-
shadowFocusElementData.shadowData.data = shadowData.shadowData.data = nativeData.shadowData.data = opts.data;
|
1474
|
-
}
|
1475
|
-
opts = null;
|
1476
1436
|
webshims.docObserve();
|
1477
1437
|
};
|
1478
1438
|
})(),
|
@@ -1756,7 +1716,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1756
1716
|
// register: moduleName:string,
|
1757
1717
|
// callback: callback:function
|
1758
1718
|
// });
|
1759
|
-
// get/set including
|
1719
|
+
// get/set including remoteLang
|
1760
1720
|
// - webshims.activeLang({
|
1761
1721
|
// module: moduleName:string,
|
1762
1722
|
// callback: callback:function,
|
@@ -1965,52 +1925,55 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1965
1925
|
});
|
1966
1926
|
webshims.loader.loadList(['mediaelement-native-fix']);
|
1967
1927
|
}
|
1968
|
-
|
1969
|
-
|
1970
|
-
|
1971
|
-
|
1972
|
-
|
1973
|
-
|
1974
|
-
|
1975
|
-
|
1976
|
-
|
1977
|
-
var parent;
|
1978
|
-
if(!options.preferFlash &&
|
1928
|
+
|
1929
|
+
if(!options.preferFlash){
|
1930
|
+
var noSwitch = {
|
1931
|
+
1: 1,
|
1932
|
+
2: 1
|
1933
|
+
};
|
1934
|
+
var switchOptions = function(e){
|
1935
|
+
var media, error, parent;
|
1936
|
+
if(!options.preferFlash &&
|
1979
1937
|
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
|
1980
|
-
(media = $(e.target).closest('audio, video')) && !noSwitch[media.prop('error')]
|
1938
|
+
(media = $(e.target).closest('audio, video')) && !noSwitch[(error = media.prop('error'))]
|
1981
1939
|
){
|
1982
|
-
|
1983
|
-
|
1984
|
-
|
1985
|
-
|
1986
|
-
setTimeout(function(){
|
1987
|
-
if(!options.preferFlash && webshims.mediaelement.createSWF && !media.is('.nonnative-api-active')){
|
1988
|
-
options.preferFlash = true;
|
1989
|
-
document.removeEventListener('error', switchOptions, true);
|
1990
|
-
$('audio, video').each(function(){
|
1991
|
-
webshims.mediaelement.selectSource(this);
|
1992
|
-
});
|
1993
|
-
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
1994
|
-
}
|
1995
|
-
}, 9);
|
1996
|
-
});
|
1997
|
-
} else{
|
1998
|
-
document.removeEventListener('error', switchOptions, true);
|
1940
|
+
if(error == null){
|
1941
|
+
webshims.warn("There was an unspecified error on a mediaelement");
|
1942
|
+
return;
|
1943
|
+
|
1999
1944
|
}
|
2000
|
-
|
2001
|
-
|
2002
|
-
|
2003
|
-
|
2004
|
-
|
2005
|
-
|
2006
|
-
|
2007
|
-
|
2008
|
-
|
2009
|
-
|
2010
|
-
|
1945
|
+
$(function(){
|
1946
|
+
if(hasSwf && !options.preferFlash){
|
1947
|
+
loadSwf();
|
1948
|
+
webshims.ready('WINDOWLOAD '+swfType, function(){
|
1949
|
+
setTimeout(function(){
|
1950
|
+
if(!options.preferFlash && webshims.mediaelement.createSWF && !media.is('.nonnative-api-active')){
|
1951
|
+
options.preferFlash = true;
|
1952
|
+
document.removeEventListener('error', switchOptions, true);
|
1953
|
+
$('audio, video').each(function(){
|
1954
|
+
webshims.mediaelement.selectSource(this);
|
1955
|
+
});
|
1956
|
+
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
1957
|
+
}
|
1958
|
+
}, 9);
|
1959
|
+
});
|
1960
|
+
} else{
|
1961
|
+
document.removeEventListener('error', switchOptions, true);
|
1962
|
+
}
|
1963
|
+
});
|
1964
|
+
}
|
1965
|
+
};
|
1966
|
+
document.addEventListener('error', switchOptions, true);
|
1967
|
+
$('audio, video').each(function(){
|
1968
|
+
var error = $.prop(this, 'error');
|
1969
|
+
if(error && !noSwitch[error]){
|
1970
|
+
switchOptions({target: this});
|
1971
|
+
return false;
|
1972
|
+
}
|
1973
|
+
});
|
1974
|
+
}
|
2011
1975
|
}
|
2012
1976
|
|
2013
|
-
|
2014
1977
|
if(Modernizr.track && !bugs.track){
|
2015
1978
|
(function(){
|
2016
1979
|
|
@@ -2391,63 +2354,14 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2391
2354
|
|
2392
2355
|
});
|
2393
2356
|
|
2394
|
-
|
2395
|
-
if(!supportsLoop){
|
2396
|
-
webshims.defineNodeNamesBooleanProperty(['audio', 'video'], 'loop');
|
2397
|
-
}
|
2398
|
-
|
2399
|
-
['audio', 'video'].forEach(function(nodeName){
|
2400
|
-
var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
|
2401
|
-
prop: {
|
2402
|
-
value: function(){
|
2403
|
-
var data = webshims.data(this, 'mediaelement');
|
2404
|
-
selectSource(this, data);
|
2405
|
-
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
2406
|
-
supLoad.prop._supvalue.apply(this, arguments);
|
2407
|
-
}
|
2408
|
-
}
|
2409
|
-
}
|
2410
|
-
});
|
2411
|
-
nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
|
2412
|
-
prop: {
|
2413
|
-
value: function(type){
|
2414
|
-
var ret = '';
|
2415
|
-
if(hasNative && nativeCanPlayType[nodeName].prop._supvalue){
|
2416
|
-
ret = nativeCanPlayType[nodeName].prop._supvalue.call(this, type);
|
2417
|
-
if(ret == 'no'){
|
2418
|
-
ret = '';
|
2419
|
-
}
|
2420
|
-
}
|
2421
|
-
if(!ret && hasSwf){
|
2422
|
-
type = $.trim((type || '').split(';')[0]);
|
2423
|
-
if(mediaelement.swfMimeTypes.indexOf(type) != -1){
|
2424
|
-
ret = 'maybe';
|
2425
|
-
}
|
2426
|
-
}
|
2427
|
-
return ret;
|
2428
|
-
}
|
2429
|
-
}
|
2430
|
-
});
|
2431
|
-
});
|
2432
|
-
webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
|
2433
|
-
set: function(){
|
2434
|
-
var elem = this;
|
2435
|
-
var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
2436
|
-
clearTimeout(baseData.loadTimer);
|
2437
|
-
baseData.loadTimer = setTimeout(function(){
|
2438
|
-
selectSource(elem);
|
2439
|
-
elem = null;
|
2440
|
-
}, 9);
|
2441
|
-
}
|
2442
|
-
});
|
2443
|
-
});
|
2444
|
-
|
2357
|
+
var handleMedia = false;
|
2445
2358
|
var initMediaElements = function(){
|
2446
2359
|
var testFixMedia = function(){
|
2447
2360
|
if(webshims.implement(this, 'mediaelement')){
|
2448
2361
|
selectSource(this);
|
2449
2362
|
|
2450
|
-
if
|
2363
|
+
//fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
|
2364
|
+
if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
|
2451
2365
|
var bufferTimer;
|
2452
2366
|
var lastBuffered;
|
2453
2367
|
var elem = this;
|
@@ -2476,7 +2390,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2476
2390
|
lastBuffered = getBufferedString();
|
2477
2391
|
}
|
2478
2392
|
clearTimeout(bufferTimer);
|
2479
|
-
bufferTimer = setTimeout(testBuffer,
|
2393
|
+
bufferTimer = setTimeout(testBuffer, 400);
|
2480
2394
|
},
|
2481
2395
|
'emptied stalled mediaerror abort suspend': function(e){
|
2482
2396
|
if(e.type == 'emptied'){
|
@@ -2493,11 +2407,62 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
2493
2407
|
}
|
2494
2408
|
|
2495
2409
|
};
|
2496
|
-
|
2410
|
+
|
2497
2411
|
|
2498
2412
|
|
2499
2413
|
webshims.ready('dom-support', function(){
|
2500
2414
|
handleMedia = true;
|
2415
|
+
|
2416
|
+
if(!supportsLoop){
|
2417
|
+
webshims.defineNodeNamesBooleanProperty(['audio', 'video'], 'loop');
|
2418
|
+
}
|
2419
|
+
|
2420
|
+
['audio', 'video'].forEach(function(nodeName){
|
2421
|
+
var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
|
2422
|
+
prop: {
|
2423
|
+
value: function(){
|
2424
|
+
var data = webshims.data(this, 'mediaelement');
|
2425
|
+
selectSource(this, data);
|
2426
|
+
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
2427
|
+
supLoad.prop._supvalue.apply(this, arguments);
|
2428
|
+
}
|
2429
|
+
}
|
2430
|
+
}
|
2431
|
+
});
|
2432
|
+
nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
|
2433
|
+
prop: {
|
2434
|
+
value: function(type){
|
2435
|
+
var ret = '';
|
2436
|
+
if(hasNative && nativeCanPlayType[nodeName].prop._supvalue){
|
2437
|
+
ret = nativeCanPlayType[nodeName].prop._supvalue.call(this, type);
|
2438
|
+
if(ret == 'no'){
|
2439
|
+
ret = '';
|
2440
|
+
}
|
2441
|
+
}
|
2442
|
+
if(!ret && hasSwf){
|
2443
|
+
type = $.trim((type || '').split(';')[0]);
|
2444
|
+
if(mediaelement.swfMimeTypes.indexOf(type) != -1){
|
2445
|
+
ret = 'maybe';
|
2446
|
+
}
|
2447
|
+
}
|
2448
|
+
return ret;
|
2449
|
+
}
|
2450
|
+
}
|
2451
|
+
});
|
2452
|
+
});
|
2453
|
+
webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
|
2454
|
+
set: function(){
|
2455
|
+
var elem = this;
|
2456
|
+
var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
2457
|
+
clearTimeout(baseData.loadTimer);
|
2458
|
+
baseData.loadTimer = setTimeout(function(){
|
2459
|
+
selectSource(elem);
|
2460
|
+
elem = null;
|
2461
|
+
}, 9);
|
2462
|
+
}
|
2463
|
+
});
|
2464
|
+
|
2465
|
+
|
2501
2466
|
webshims.addReady(function(context, insertedElement){
|
2502
2467
|
var media = $('video, audio', context)
|
2503
2468
|
.add(insertedElement.filter('video, audio'))
|
@@ -2557,6 +2522,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
2557
2522
|
var hasNative = Modernizr.audio && Modernizr.video;
|
2558
2523
|
var hasFlash = swfmini.hasFlashPlayerVersion('9.0.115');
|
2559
2524
|
var loadedSwf = 0;
|
2525
|
+
var needsLoadPreload = 'ActiveXObject' in window && hasNative;
|
2560
2526
|
var getProps = {
|
2561
2527
|
paused: true,
|
2562
2528
|
ended: false,
|
@@ -2670,12 +2636,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
2670
2636
|
data.readyState = readyState;
|
2671
2637
|
};
|
2672
2638
|
|
2673
|
-
|
2674
|
-
updatemediaelementdimensions: true,
|
2675
|
-
flashblocker: true,
|
2676
|
-
swfstageresize: true,
|
2677
|
-
mediaelementapichange: true
|
2678
|
-
});
|
2639
|
+
|
2679
2640
|
|
2680
2641
|
mediaelement.jarisEvent = {};
|
2681
2642
|
var localConnectionTimer;
|
@@ -2924,8 +2885,13 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
2924
2885
|
var isNativeHTML5 = ( event.originalEvent && event.originalEvent.type === event.type );
|
2925
2886
|
if( isNativeHTML5 == (data.activating == 'third') ){
|
2926
2887
|
event.stopImmediatePropagation();
|
2927
|
-
|
2928
|
-
|
2888
|
+
|
2889
|
+
if(stopEvents[event.type]){
|
2890
|
+
if(data.isActive != data.activating){
|
2891
|
+
$(event.target).pause();
|
2892
|
+
} else if(isNativeHTML5){
|
2893
|
+
($.prop(event.target, 'pause')._supvalue || $.noop).apply(event.target);
|
2894
|
+
}
|
2929
2895
|
}
|
2930
2896
|
}
|
2931
2897
|
};
|
@@ -2989,15 +2955,18 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
2989
2955
|
})();
|
2990
2956
|
|
2991
2957
|
var setElementDimension = function(data, hasControls){
|
2958
|
+
var cAttr;
|
2992
2959
|
var elem = data._elem;
|
2993
2960
|
var box = data.shadowElem;
|
2961
|
+
|
2994
2962
|
$(elem)[hasControls ? 'addClass' : 'removeClass']('webshims-controls');
|
2995
2963
|
if(data._elemNodeName == 'audio' && !hasControls){
|
2996
2964
|
box.css({width: 0, height: 0});
|
2997
2965
|
} else {
|
2966
|
+
|
2998
2967
|
box.css({
|
2999
|
-
width: elem.style.width || $(elem).width(),
|
3000
|
-
height: elem.style.height || $(elem).height()
|
2968
|
+
width: elem.style.width || ((cAttr = $(elem).attr('width')) && cAttr+'px') || $(elem).width(),
|
2969
|
+
height: elem.style.height|| ((cAttr = $(elem).attr('height')) && cAttr+'px') || $(elem).height()
|
3001
2970
|
});
|
3002
2971
|
}
|
3003
2972
|
};
|
@@ -3026,7 +2995,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3026
2995
|
replaceVar = function(val){
|
3027
2996
|
return (val.replace) ? val.replace(regs.A, '%26').replace(regs.a, '%26').replace(regs.e, '%3D').replace(regs.q, '%3F') : val;
|
3028
2997
|
};
|
3029
|
-
|
2998
|
+
|
3030
2999
|
mediaelement.createSWF = function( elem, canPlaySrc, data ){
|
3031
3000
|
if(!hasFlash){
|
3032
3001
|
setTimeout(function(){
|
@@ -3034,7 +3003,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3034
3003
|
}, 1);
|
3035
3004
|
return;
|
3036
3005
|
}
|
3037
|
-
|
3006
|
+
|
3038
3007
|
if(loadedSwf < 1){
|
3039
3008
|
loadedSwf = 1;
|
3040
3009
|
} else {
|
@@ -3045,7 +3014,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3045
3014
|
}
|
3046
3015
|
|
3047
3016
|
if($.attr(elem, 'height') || $.attr(elem, 'width')){
|
3048
|
-
webshims.warn("width or height content attributes used. Webshims
|
3017
|
+
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.");
|
3049
3018
|
}
|
3050
3019
|
|
3051
3020
|
var isRtmp = canPlaySrc.type == 'audio/rtmp' || canPlaySrc.type == 'video/rtmp';
|
@@ -3142,6 +3111,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3142
3111
|
}
|
3143
3112
|
}
|
3144
3113
|
}));
|
3114
|
+
|
3145
3115
|
setElementDimension(data, hasControls);
|
3146
3116
|
|
3147
3117
|
box.insertBefore(elem);
|
@@ -3151,16 +3121,31 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3151
3121
|
}
|
3152
3122
|
|
3153
3123
|
webshims.addShadowDom(elem, box);
|
3124
|
+
if(!webshims.data(elem, 'mediaelement')){
|
3125
|
+
webshims.data(elem, 'mediaelement', data);
|
3126
|
+
}
|
3154
3127
|
addMediaToStopEvents(elem);
|
3128
|
+
|
3155
3129
|
mediaelement.setActive(elem, 'third', data);
|
3130
|
+
|
3156
3131
|
$(elem)
|
3157
3132
|
.on({'updatemediaelementdimensions': setDimension})
|
3158
3133
|
.onWSOff('updateshadowdom', setDimension)
|
3134
|
+
.on('remove', function(e){
|
3135
|
+
if(!e.originalEvent && mediaelement.jarisEvent[data.id] && mediaelement.jarisEvent[data.id].elem == elem){
|
3136
|
+
delete mediaelement.jarisEvent[data.id];
|
3137
|
+
clearTimeout(localConnectionTimer);
|
3138
|
+
clearTimeout(data.flashBlock);
|
3139
|
+
}
|
3140
|
+
box.remove();
|
3141
|
+
})
|
3159
3142
|
;
|
3160
3143
|
}
|
3161
3144
|
|
3162
|
-
|
3145
|
+
|
3146
|
+
if(!mediaelement.jarisEvent[data.id] || mediaelement.jarisEvent[data.id].elem != elem){
|
3163
3147
|
mediaelement.jarisEvent[data.id] = function(jaris){
|
3148
|
+
|
3164
3149
|
if(jaris.type == 'ready'){
|
3165
3150
|
var onReady = function(){
|
3166
3151
|
if(data.api){
|
@@ -3193,8 +3178,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3193
3178
|
}
|
3194
3179
|
data.duration = jaris.duration;
|
3195
3180
|
}
|
3196
|
-
|
3197
3181
|
};
|
3182
|
+
mediaelement.jarisEvent[data.id].elem = elem;
|
3198
3183
|
}
|
3199
3184
|
|
3200
3185
|
$.extend(vars,
|
@@ -3220,27 +3205,27 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3220
3205
|
clearTimeout(data.flashBlock);
|
3221
3206
|
|
3222
3207
|
swfmini.embedSWF(playerSwfPath, elemId, "100%", "100%", "9.0.115", false, vars, params, attrs, function(swfData){
|
3223
|
-
|
3224
3208
|
if(swfData.success){
|
3225
|
-
|
3226
|
-
data.api = swfData.ref;
|
3227
|
-
|
3228
|
-
if(!hasControls){
|
3229
|
-
$(swfData.ref).attr('tabindex', '-1').css('outline', 'none');
|
3230
|
-
}
|
3231
|
-
|
3232
|
-
data.flashBlock = setTimeout(function(){
|
3209
|
+
var fBlocker = function(){
|
3233
3210
|
if((!swfData.ref.parentNode && box[0].parentNode) || swfData.ref.style.display == "none"){
|
3234
3211
|
box.addClass('flashblocker-assumed');
|
3235
3212
|
$(elem).trigger('flashblocker');
|
3236
3213
|
webshims.warn("flashblocker assumed");
|
3237
3214
|
}
|
3238
3215
|
$(swfData.ref).css({'minHeight': '2px', 'minWidth': '2px', display: 'block'});
|
3239
|
-
}
|
3216
|
+
};
|
3217
|
+
data.api = swfData.ref;
|
3218
|
+
|
3219
|
+
if(!hasControls){
|
3220
|
+
$(swfData.ref).attr('tabindex', '-1').css('outline', 'none');
|
3221
|
+
}
|
3222
|
+
|
3223
|
+
data.flashBlock = setTimeout(fBlocker, 99);
|
3240
3224
|
|
3241
3225
|
if(!localConnectionTimer){
|
3242
3226
|
clearTimeout(localConnectionTimer);
|
3243
3227
|
localConnectionTimer = setTimeout(function(){
|
3228
|
+
fBlocker();
|
3244
3229
|
var flash = $(swfData.ref);
|
3245
3230
|
if(flash[0].offsetWidth > 1 && flash[0].offsetHeight > 1 && location.protocol.indexOf('file:') === 0){
|
3246
3231
|
webshims.error("Add your local development-directory to the local-trusted security sandbox: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html");
|
@@ -3394,12 +3379,23 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
3394
3379
|
}
|
3395
3380
|
});
|
3396
3381
|
|
3382
|
+
|
3397
3383
|
webshims.onNodeNamesPropertyModify(nodeName, 'preload', function(val){
|
3398
|
-
var data
|
3384
|
+
var data, baseData, elem;
|
3399
3385
|
|
3400
3386
|
|
3401
|
-
if(
|
3402
|
-
|
3387
|
+
if(bufferSrc(this)){
|
3388
|
+
data = getSwfDataFromElem(this);
|
3389
|
+
if(data){
|
3390
|
+
queueSwfMethod(this, 'api_preload', [], data);
|
3391
|
+
} else if(needsLoadPreload && this.paused && !this.error && !$.data(this, 'mediaerror') && !this.readyState && !this.networkState && !this.autoplay && $(this).is(':not(.nonnative-api-active)')){
|
3392
|
+
elem = this;
|
3393
|
+
baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
3394
|
+
clearTimeout(baseData.loadTimer);
|
3395
|
+
baseData.loadTimer = setTimeout(function(){
|
3396
|
+
$(elem).mediaLoad();
|
3397
|
+
}, 9);
|
3398
|
+
}
|
3403
3399
|
}
|
3404
3400
|
});
|
3405
3401
|
|