webshims-rails 1.14.1 → 1.14.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/webshims-rails/version.rb +2 -2
- data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +0 -0
- data/vendor/assets/javascripts/webshims/polyfiller.js +3 -8
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/canvas2png.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/proxy.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/save.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/canvas2png.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash10canvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash9canvas.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/proxy.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/save.php +0 -0
- data/vendor/assets/javascripts/webshims/shims/color-picker.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +96 -59
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +96 -59
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +70 -44
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +1241 -1126
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +1272 -1214
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +1272 -1214
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +61 -92
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +30 -16
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +41 -85
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +1556 -2316
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +12 -10
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/32.js +1175 -1095
- data/vendor/assets/javascripts/webshims/shims/combos/33.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/34.js +30 -16
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +66 -31
- data/vendor/assets/javascripts/webshims/shims/combos/97.js +63 -28
- data/vendor/assets/javascripts/webshims/shims/combos/98.js +149 -74
- data/vendor/assets/javascripts/webshims/shims/combos/99.js +149 -74
- data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +1 -1
- data/vendor/assets/javascripts/webshims/shims/details.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/es5.js +1175 -1095
- data/vendor/assets/javascripts/webshims/shims/excanvas.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/filereader.js +10 -9
- data/vendor/assets/javascripts/webshims/shims/form-combat.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-core.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-fixrangechange.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-message.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +40 -11
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +80 -47
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +19 -8
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +21 -1
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-CN.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-cs.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fa.js +130 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-BR.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-CN.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-TW.js +130 -0
- data/vendor/assets/javascripts/webshims/shims/jajax.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/_icons.scss +186 -0
- data/vendor/assets/javascripts/webshims/shims/jme/b.js +63 -28
- data/vendor/assets/javascripts/webshims/shims/jme/c.js +86 -46
- data/vendor/assets/javascripts/webshims/shims/jme/controls.css +317 -211
- data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +59 -223
- data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
- data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +66 -14
- data/vendor/assets/javascripts/webshims/shims/jme/p.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/ChangeLog.txt +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/ReadMe.txt +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/AlphaBar.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/Bars.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/Maps.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/NoColor.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/bar-opacity.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/map-opacity.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/mappoint.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/picker.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/preview-opacity.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/images/rangearrows.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +55 -48
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +66 -43
- data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +833 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +31 -76
- data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.cdn.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.min.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/js/moxie.js +1542 -2303
- data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.cdn.xap +0 -0
- data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.min.xap +0 -0
- data/vendor/assets/javascripts/webshims/shims/picture.js +160 -79
- data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/promise.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +26 -20
- data/vendor/assets/javascripts/webshims/shims/sizzle.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/color-picker.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +444 -326
- data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +379 -300
- data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/progress.png +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +8 -8
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +0 -14
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +104 -85
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +20 -32
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim-ext.scss +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +14 -34
- data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +920 -728
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +471 -391
- data/vendor/assets/javascripts/webshims/shims/styles/widget.eot +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/widget.svg +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/widget.ttf +0 -0
- data/vendor/assets/javascripts/webshims/shims/styles/widget.woff +0 -0
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/swfmini-embed.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +0 -0
- data/vendor/assets/javascripts/webshims/shims/track.js +30 -16
- metadata +8 -4
- data/vendor/assets/javascripts/webshims/shims/styles/config.rb +0 -12
- data/vendor/assets/javascripts/webshims/shims/swf/filereader.swf +0 -0
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
var wsCfg = webshims.cfg;
|
17
17
|
var options = wsCfg.mediaelement;
|
18
|
-
var
|
18
|
+
var isIE = navigator.userAgent.indexOf('MSIE') != -1;
|
19
19
|
if(!options){
|
20
20
|
webshims.error("mediaelement wasn't implemented but loaded");
|
21
21
|
return;
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
|
32
32
|
|
33
|
-
if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted &&
|
33
|
+
if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted && isIE && 'ActiveXObject' in window) ){
|
34
34
|
webshims.addPolyfill('mediaelement-native-fix', {
|
35
35
|
d: ['dom-support']
|
36
36
|
});
|
@@ -58,7 +58,7 @@
|
|
58
58
|
}
|
59
59
|
|
60
60
|
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
|
61
|
-
hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
|
61
|
+
var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
|
62
62
|
var mediaelement = webshims.mediaelement;
|
63
63
|
|
64
64
|
mediaelement.parseRtmp = function(data){
|
@@ -120,11 +120,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
120
120
|
}
|
121
121
|
}
|
122
122
|
}
|
123
|
-
|
124
|
-
if(!src.container){
|
125
|
-
$(elem).attr('data-wsrecheckmimetype', '');
|
126
|
-
}
|
127
|
-
|
123
|
+
|
128
124
|
tmp = elem.attr('media');
|
129
125
|
if(tmp){
|
130
126
|
src.media = tmp;
|
@@ -254,11 +250,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
254
250
|
}
|
255
251
|
};
|
256
252
|
|
257
|
-
|
258
|
-
$.fn.loadMediaSrc = function(){
|
259
|
-
webshims.error('loadMediaSrc was removed.');
|
260
|
-
};
|
261
|
-
|
262
253
|
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'];
|
263
254
|
|
264
255
|
mediaelement.canThirdPlaySrces = function(mediaElem, srces){
|
@@ -316,7 +307,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
316
307
|
message = "can't play sources";
|
317
308
|
}
|
318
309
|
$(elem).pause().data('mediaerror', message);
|
319
|
-
webshims.error('mediaelementError: '+ message);
|
310
|
+
webshims.error('mediaelementError: '+ message +'. Run the following line in your console to get more info: webshim.mediaelement.loadDebugger();');
|
320
311
|
setTimeout(function(){
|
321
312
|
if($(elem).data('mediaerror')){
|
322
313
|
$(elem).addClass('media-error').trigger('mediaerror');
|
@@ -348,36 +339,49 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
348
339
|
}
|
349
340
|
};
|
350
341
|
})();
|
351
|
-
|
352
|
-
var
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
if(!ret){
|
357
|
-
if(_noLoop){
|
358
|
-
mediaelement.setError(elem, false);
|
359
|
-
} else {
|
360
|
-
stepSources(elem, data, false, _srces, true);
|
361
|
-
}
|
362
|
-
} else {
|
363
|
-
handleThird(elem, ret, data);
|
342
|
+
|
343
|
+
var activate = {
|
344
|
+
native: function(elem, src, data){
|
345
|
+
if(data && data.isActive == 'third') {
|
346
|
+
mediaelement.setActive(elem, 'html5', data);
|
364
347
|
}
|
365
|
-
}
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
348
|
+
},
|
349
|
+
third: handleThird
|
350
|
+
};
|
351
|
+
|
352
|
+
var stepSources = function(elem, data, srces){
|
353
|
+
var i, src;
|
354
|
+
var testOrder = [{test: 'canNativePlaySrces', activate: 'native'}, {test: 'canThirdPlaySrces', activate: 'third'}];
|
355
|
+
if(options.preferFlash || (data && data.isActive == 'third') ){
|
356
|
+
testOrder.reverse();
|
357
|
+
}
|
358
|
+
for(i = 0; i < 2; i++){
|
359
|
+
src = mediaelement[testOrder[i].test](elem, srces);
|
360
|
+
if(src){
|
361
|
+
activate[testOrder[i].activate](elem, src, data);
|
362
|
+
break;
|
363
|
+
}
|
364
|
+
}
|
365
|
+
|
366
|
+
if(!src){
|
367
|
+
mediaelement.setError(elem, false);
|
368
|
+
if(data && data.isActive == 'third') {
|
377
369
|
mediaelement.setActive(elem, 'html5', data);
|
378
370
|
}
|
379
371
|
}
|
380
372
|
};
|
373
|
+
var allowedPreload = {'metadata': 1, 'auto': 1, '': 1};
|
374
|
+
var fixPreload = function(elem){
|
375
|
+
var preload, img;
|
376
|
+
if(elem.getAttribute('preload') == 'none'){
|
377
|
+
if(allowedPreload[(preload = $.attr(elem, 'data-preload'))]){
|
378
|
+
$.attr(elem, 'preload', preload);
|
379
|
+
} else if(hasNative && (preload = elem.getAttribute('poster'))){
|
380
|
+
img = document.createElement('img');
|
381
|
+
img.src = preload;
|
382
|
+
}
|
383
|
+
}
|
384
|
+
};
|
381
385
|
var stopParent = /^(?:embed|object|datalist)$/i;
|
382
386
|
var selectSource = function(elem, data){
|
383
387
|
var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
@@ -393,7 +397,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
393
397
|
if(mediaelement.sortMedia){
|
394
398
|
_srces.sort(mediaelement.sortMedia);
|
395
399
|
}
|
396
|
-
|
400
|
+
fixPreload(elem);
|
401
|
+
stepSources(elem, data, _srces);
|
402
|
+
|
397
403
|
};
|
398
404
|
mediaelement.selectSource = selectSource;
|
399
405
|
|
@@ -404,20 +410,22 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
404
410
|
setTimeout(function(){
|
405
411
|
if( $.prop(e.target, 'paused') || !$.prop(e.target, 'loop') ){return;}
|
406
412
|
$(e.target).prop('currentTime', 0).play();
|
407
|
-
}
|
413
|
+
});
|
408
414
|
|
409
415
|
});
|
410
416
|
|
411
417
|
var handleMedia = false;
|
418
|
+
|
412
419
|
var initMediaElements = function(){
|
413
420
|
var testFixMedia = function(){
|
421
|
+
|
414
422
|
if(webshims.implement(this, 'mediaelement')){
|
415
423
|
selectSource(this);
|
416
424
|
if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
|
417
425
|
$.prop(this, 'muted', true);
|
418
426
|
}
|
427
|
+
|
419
428
|
}
|
420
|
-
|
421
429
|
};
|
422
430
|
|
423
431
|
webshims.ready('dom-support', function(){
|
@@ -433,6 +441,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
433
441
|
prop: {
|
434
442
|
value: function(){
|
435
443
|
var data = webshims.data(this, 'mediaelement');
|
444
|
+
|
436
445
|
selectSource(this, data);
|
437
446
|
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
438
447
|
supLoad.prop._supvalue.apply(this, arguments);
|
@@ -444,6 +453,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
444
453
|
}
|
445
454
|
}
|
446
455
|
});
|
456
|
+
|
447
457
|
nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
|
448
458
|
prop: {
|
449
459
|
value: function(type){
|
@@ -460,6 +470,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
460
470
|
ret = 'maybe';
|
461
471
|
}
|
462
472
|
}
|
473
|
+
if(!ret && hasYt && type == 'video/youtube'){
|
474
|
+
ret = 'maybe';
|
475
|
+
}
|
463
476
|
return ret;
|
464
477
|
}
|
465
478
|
}
|
@@ -509,8 +522,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
509
522
|
});
|
510
523
|
}
|
511
524
|
};
|
512
|
-
|
513
525
|
|
526
|
+
mediaelement.loadDebugger = function(){
|
527
|
+
webshims.ready('dom-support', function(){
|
528
|
+
webshims.loader.loadScript('mediaelement-debug');
|
529
|
+
});
|
530
|
+
};
|
531
|
+
|
532
|
+
if(({noCombo: 1, media: 1})[webshims.cfg.debug]){
|
533
|
+
$(document).on('mediaerror', function(e){
|
534
|
+
mediaelement.loadDebugger();
|
535
|
+
});
|
536
|
+
}
|
514
537
|
//set native implementation ready, before swf api is retested
|
515
538
|
if(hasNative){
|
516
539
|
webshims.isReady('mediaelement-core', true);
|
@@ -819,6 +842,26 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
819
842
|
return cueText.replace(tagSplits, replacer);
|
820
843
|
};
|
821
844
|
})();
|
845
|
+
var mapTtmlToVtt = function(i){
|
846
|
+
var content = i+'';
|
847
|
+
var begin = this.getAttribute('begin') || '';
|
848
|
+
var end = this.getAttribute('end') || '';
|
849
|
+
var text = $.trim($.text(this));
|
850
|
+
if(!/\./.test(begin)){
|
851
|
+
begin += '.000';
|
852
|
+
}
|
853
|
+
if(!/\./.test(end)){
|
854
|
+
end += '.000';
|
855
|
+
}
|
856
|
+
content += '\n';
|
857
|
+
content += begin +' --> '+end+'\n';
|
858
|
+
content += text;
|
859
|
+
return content;
|
860
|
+
};
|
861
|
+
var ttmlTextToVTT = function(ttml){
|
862
|
+
ttml = $.parseXML(ttml) || [];
|
863
|
+
return $(ttml).find('[begin][end]').map(mapTtmlToVtt).get().join('\n\n') || '';
|
864
|
+
};
|
822
865
|
|
823
866
|
mediaelement.loadTextTrack = function(mediaelem, track, trackData, _default){
|
824
867
|
var loadEvents = 'play playing';
|
@@ -846,7 +889,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
846
889
|
dataType: 'text',
|
847
890
|
url: src,
|
848
891
|
success: function(text){
|
849
|
-
|
892
|
+
var contentType = ajax.getResponseHeader('content-type');
|
893
|
+
|
894
|
+
if(!contentType.indexOf('application/xml')){
|
895
|
+
text = ttmlTextToVTT(text);
|
896
|
+
} else if(contentType.indexOf('text/vtt')){
|
850
897
|
webshims.error('set the mime-type of your WebVTT files to text/vtt. see: http://dev.w3.org/html5/webvtt/#text/vtt');
|
851
898
|
}
|
852
899
|
mediaelement.parseCaptions(text, obj, function(cues){
|
@@ -966,25 +1013,20 @@ modified for webshims
|
|
966
1013
|
*/
|
967
1014
|
mediaelement.parseCaptionChunk = (function(){
|
968
1015
|
// Set up timestamp parsers
|
969
|
-
var WebVTTTimestampParser
|
1016
|
+
var WebVTTTimestampParser = /^(\d{2})?:?(\d{2}):(\d{2})\.(\d+)\s+\-\-\>\s+(\d{2})?:?(\d{2}):(\d{2})\.(\d+)\s*(.*)/;
|
970
1017
|
var WebVTTDEFAULTSCueParser = /^(DEFAULTS|DEFAULT)\s+\-\-\>\s+(.*)/g;
|
971
1018
|
var WebVTTSTYLECueParser = /^(STYLE|STYLES)\s+\-\-\>\s*\n([\s\S]*)/g;
|
972
1019
|
var WebVTTCOMMENTCueParser = /^(COMMENT|COMMENTS)\s+\-\-\>\s+(.*)/g;
|
1020
|
+
var SRTTimestampParser = /^(\d{2})?:?(\d{2}):(\d{2})[\.\,](\d+)\s+\-\-\>\s+(\d{2})?:?(\d{2}):(\d{2})[\.\,](\d+)\s*(.*)/;
|
973
1021
|
|
974
1022
|
return function(subtitleElement,objectCount){
|
975
1023
|
|
976
|
-
var subtitleParts, timeIn, timeOut, html, timeData, subtitlePartIndex, id
|
1024
|
+
var subtitleParts, timeIn, timeOut, html, timeData, subtitlePartIndex, id;
|
977
1025
|
var timestampMatch, tmpCue;
|
978
1026
|
|
979
1027
|
// WebVTT Special Cue Logic
|
980
|
-
if (WebVTTDEFAULTSCueParser.exec(subtitleElement)) {
|
981
|
-
// cueDefaults = specialCueData.slice(2).join("");
|
982
|
-
// cueDefaults = cueDefaults.split(/\s+/g).filter(function(def) { return def && !!def.length; });
|
983
|
-
return null;
|
984
|
-
} else if ((specialCueData = WebVTTSTYLECueParser.exec(subtitleElement))) {
|
1028
|
+
if (WebVTTDEFAULTSCueParser.exec(subtitleElement) || WebVTTCOMMENTCueParser.exec(subtitleElement) || WebVTTSTYLECueParser.exec(subtitleElement)) {
|
985
1029
|
return null;
|
986
|
-
} else if ((specialCueData = WebVTTCOMMENTCueParser.exec(subtitleElement))) {
|
987
|
-
return null; // At this stage, we don't want to do anything with these.
|
988
1030
|
}
|
989
1031
|
|
990
1032
|
subtitleParts = subtitleElement.split(/\n/g);
|
@@ -1002,7 +1044,7 @@ modified for webshims
|
|
1002
1044
|
for (subtitlePartIndex = 0; subtitlePartIndex < subtitleParts.length; subtitlePartIndex ++) {
|
1003
1045
|
var timestamp = subtitleParts[subtitlePartIndex];
|
1004
1046
|
|
1005
|
-
if ((timestampMatch = WebVTTTimestampParser.exec(timestamp))) {
|
1047
|
+
if ((timestampMatch = WebVTTTimestampParser.exec(timestamp)) || (timestampMatch = SRTTimestampParser.exec(timestamp))) {
|
1006
1048
|
|
1007
1049
|
// WebVTT
|
1008
1050
|
|
@@ -1089,11 +1131,6 @@ modified for webshims
|
|
1089
1131
|
if(regWevVTT.test(cue)){
|
1090
1132
|
isWEBVTT = true;
|
1091
1133
|
} else if(cue.replace(/\s*/ig,"").length){
|
1092
|
-
if(!isWEBVTT){
|
1093
|
-
webshims.error('please use WebVTT format. This is the standard');
|
1094
|
-
complete(null);
|
1095
|
-
break;
|
1096
|
-
}
|
1097
1134
|
cue = mediaelement.parseCaptionChunk(cue, i);
|
1098
1135
|
if(cue){
|
1099
1136
|
track.addCue(cue);
|
File without changes
|
@@ -1646,12 +1646,13 @@ var getGroupElements = function(elem){
|
|
1646
1646
|
} else {
|
1647
1647
|
form = elem.prop('form');
|
1648
1648
|
ret = $(document.getElementsByName(name)).filter(function(){
|
1649
|
-
return this.type == 'radio' &&
|
1649
|
+
return this.type == 'radio' && $.prop(this, 'form') == form && this.name == name;
|
1650
1650
|
});
|
1651
1651
|
}
|
1652
1652
|
}
|
1653
1653
|
return ret;
|
1654
1654
|
};
|
1655
|
+
|
1655
1656
|
var patternTypes = {url: 1, email: 1, text: 1, search: 1, tel: 1, password: 1};
|
1656
1657
|
var lengthTypes = $.extend({textarea: 1}, patternTypes);
|
1657
1658
|
|
@@ -1730,6 +1731,8 @@ $.each({typeMismatch: 'mismatch', badInput: 'bad'}, function(name, fn){
|
|
1730
1731
|
};
|
1731
1732
|
});
|
1732
1733
|
|
1734
|
+
webshims.modules["form-core"].getGroupElements = getGroupElements;
|
1735
|
+
|
1733
1736
|
webshims.addValidityRule = function(type, fn){
|
1734
1737
|
validityRules[type] = fn;
|
1735
1738
|
};
|
@@ -1869,12 +1869,13 @@ var getGroupElements = function(elem){
|
|
1869
1869
|
} else {
|
1870
1870
|
form = elem.prop('form');
|
1871
1871
|
ret = $(document.getElementsByName(name)).filter(function(){
|
1872
|
-
return this.type == 'radio' &&
|
1872
|
+
return this.type == 'radio' && $.prop(this, 'form') == form && this.name == name;
|
1873
1873
|
});
|
1874
1874
|
}
|
1875
1875
|
}
|
1876
1876
|
return ret;
|
1877
1877
|
};
|
1878
|
+
|
1878
1879
|
var patternTypes = {url: 1, email: 1, text: 1, search: 1, tel: 1, password: 1};
|
1879
1880
|
var lengthTypes = $.extend({textarea: 1}, patternTypes);
|
1880
1881
|
|
@@ -1953,6 +1954,8 @@ $.each({typeMismatch: 'mismatch', badInput: 'bad'}, function(name, fn){
|
|
1953
1954
|
};
|
1954
1955
|
});
|
1955
1956
|
|
1957
|
+
webshims.modules["form-core"].getGroupElements = getGroupElements;
|
1958
|
+
|
1956
1959
|
webshims.addValidityRule = function(type, fn){
|
1957
1960
|
validityRules[type] = fn;
|
1958
1961
|
};
|
@@ -3188,7 +3191,7 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
|
|
3188
3191
|
|
3189
3192
|
var wsCfg = webshims.cfg;
|
3190
3193
|
var options = wsCfg.mediaelement;
|
3191
|
-
var
|
3194
|
+
var isIE = navigator.userAgent.indexOf('MSIE') != -1;
|
3192
3195
|
if(!options){
|
3193
3196
|
webshims.error("mediaelement wasn't implemented but loaded");
|
3194
3197
|
return;
|
@@ -3203,7 +3206,7 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
|
|
3203
3206
|
|
3204
3207
|
webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
|
3205
3208
|
|
3206
|
-
if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted &&
|
3209
|
+
if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted && isIE && 'ActiveXObject' in window) ){
|
3207
3210
|
webshims.addPolyfill('mediaelement-native-fix', {
|
3208
3211
|
d: ['dom-support']
|
3209
3212
|
});
|
@@ -3231,7 +3234,7 @@ webshims.defineNodeNamesProperties(['input', 'button'], formSubmitterDescriptors
|
|
3231
3234
|
}
|
3232
3235
|
|
3233
3236
|
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
|
3234
|
-
hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
|
3237
|
+
var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
|
3235
3238
|
var mediaelement = webshims.mediaelement;
|
3236
3239
|
|
3237
3240
|
mediaelement.parseRtmp = function(data){
|
@@ -3293,11 +3296,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3293
3296
|
}
|
3294
3297
|
}
|
3295
3298
|
}
|
3296
|
-
|
3297
|
-
if(!src.container){
|
3298
|
-
$(elem).attr('data-wsrecheckmimetype', '');
|
3299
|
-
}
|
3300
|
-
|
3299
|
+
|
3301
3300
|
tmp = elem.attr('media');
|
3302
3301
|
if(tmp){
|
3303
3302
|
src.media = tmp;
|
@@ -3427,11 +3426,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3427
3426
|
}
|
3428
3427
|
};
|
3429
3428
|
|
3430
|
-
|
3431
|
-
$.fn.loadMediaSrc = function(){
|
3432
|
-
webshims.error('loadMediaSrc was removed.');
|
3433
|
-
};
|
3434
|
-
|
3435
3429
|
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'];
|
3436
3430
|
|
3437
3431
|
mediaelement.canThirdPlaySrces = function(mediaElem, srces){
|
@@ -3489,7 +3483,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3489
3483
|
message = "can't play sources";
|
3490
3484
|
}
|
3491
3485
|
$(elem).pause().data('mediaerror', message);
|
3492
|
-
webshims.error('mediaelementError: '+ message);
|
3486
|
+
webshims.error('mediaelementError: '+ message +'. Run the following line in your console to get more info: webshim.mediaelement.loadDebugger();');
|
3493
3487
|
setTimeout(function(){
|
3494
3488
|
if($(elem).data('mediaerror')){
|
3495
3489
|
$(elem).addClass('media-error').trigger('mediaerror');
|
@@ -3521,36 +3515,49 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3521
3515
|
}
|
3522
3516
|
};
|
3523
3517
|
})();
|
3524
|
-
|
3525
|
-
var
|
3526
|
-
|
3527
|
-
|
3528
|
-
|
3529
|
-
if(!ret){
|
3530
|
-
if(_noLoop){
|
3531
|
-
mediaelement.setError(elem, false);
|
3532
|
-
} else {
|
3533
|
-
stepSources(elem, data, false, _srces, true);
|
3534
|
-
}
|
3535
|
-
} else {
|
3536
|
-
handleThird(elem, ret, data);
|
3518
|
+
|
3519
|
+
var activate = {
|
3520
|
+
native: function(elem, src, data){
|
3521
|
+
if(data && data.isActive == 'third') {
|
3522
|
+
mediaelement.setActive(elem, 'html5', data);
|
3537
3523
|
}
|
3538
|
-
}
|
3539
|
-
|
3540
|
-
|
3541
|
-
|
3542
|
-
|
3543
|
-
|
3544
|
-
|
3545
|
-
|
3546
|
-
|
3547
|
-
|
3548
|
-
|
3549
|
-
|
3524
|
+
},
|
3525
|
+
third: handleThird
|
3526
|
+
};
|
3527
|
+
|
3528
|
+
var stepSources = function(elem, data, srces){
|
3529
|
+
var i, src;
|
3530
|
+
var testOrder = [{test: 'canNativePlaySrces', activate: 'native'}, {test: 'canThirdPlaySrces', activate: 'third'}];
|
3531
|
+
if(options.preferFlash || (data && data.isActive == 'third') ){
|
3532
|
+
testOrder.reverse();
|
3533
|
+
}
|
3534
|
+
for(i = 0; i < 2; i++){
|
3535
|
+
src = mediaelement[testOrder[i].test](elem, srces);
|
3536
|
+
if(src){
|
3537
|
+
activate[testOrder[i].activate](elem, src, data);
|
3538
|
+
break;
|
3539
|
+
}
|
3540
|
+
}
|
3541
|
+
|
3542
|
+
if(!src){
|
3543
|
+
mediaelement.setError(elem, false);
|
3544
|
+
if(data && data.isActive == 'third') {
|
3550
3545
|
mediaelement.setActive(elem, 'html5', data);
|
3551
3546
|
}
|
3552
3547
|
}
|
3553
3548
|
};
|
3549
|
+
var allowedPreload = {'metadata': 1, 'auto': 1, '': 1};
|
3550
|
+
var fixPreload = function(elem){
|
3551
|
+
var preload, img;
|
3552
|
+
if(elem.getAttribute('preload') == 'none'){
|
3553
|
+
if(allowedPreload[(preload = $.attr(elem, 'data-preload'))]){
|
3554
|
+
$.attr(elem, 'preload', preload);
|
3555
|
+
} else if(hasNative && (preload = elem.getAttribute('poster'))){
|
3556
|
+
img = document.createElement('img');
|
3557
|
+
img.src = preload;
|
3558
|
+
}
|
3559
|
+
}
|
3560
|
+
};
|
3554
3561
|
var stopParent = /^(?:embed|object|datalist)$/i;
|
3555
3562
|
var selectSource = function(elem, data){
|
3556
3563
|
var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
|
@@ -3566,7 +3573,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3566
3573
|
if(mediaelement.sortMedia){
|
3567
3574
|
_srces.sort(mediaelement.sortMedia);
|
3568
3575
|
}
|
3569
|
-
|
3576
|
+
fixPreload(elem);
|
3577
|
+
stepSources(elem, data, _srces);
|
3578
|
+
|
3570
3579
|
};
|
3571
3580
|
mediaelement.selectSource = selectSource;
|
3572
3581
|
|
@@ -3577,20 +3586,22 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3577
3586
|
setTimeout(function(){
|
3578
3587
|
if( $.prop(e.target, 'paused') || !$.prop(e.target, 'loop') ){return;}
|
3579
3588
|
$(e.target).prop('currentTime', 0).play();
|
3580
|
-
}
|
3589
|
+
});
|
3581
3590
|
|
3582
3591
|
});
|
3583
3592
|
|
3584
3593
|
var handleMedia = false;
|
3594
|
+
|
3585
3595
|
var initMediaElements = function(){
|
3586
3596
|
var testFixMedia = function(){
|
3597
|
+
|
3587
3598
|
if(webshims.implement(this, 'mediaelement')){
|
3588
3599
|
selectSource(this);
|
3589
3600
|
if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
|
3590
3601
|
$.prop(this, 'muted', true);
|
3591
3602
|
}
|
3603
|
+
|
3592
3604
|
}
|
3593
|
-
|
3594
3605
|
};
|
3595
3606
|
|
3596
3607
|
webshims.ready('dom-support', function(){
|
@@ -3606,6 +3617,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3606
3617
|
prop: {
|
3607
3618
|
value: function(){
|
3608
3619
|
var data = webshims.data(this, 'mediaelement');
|
3620
|
+
|
3609
3621
|
selectSource(this, data);
|
3610
3622
|
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
3611
3623
|
supLoad.prop._supvalue.apply(this, arguments);
|
@@ -3617,6 +3629,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3617
3629
|
}
|
3618
3630
|
}
|
3619
3631
|
});
|
3632
|
+
|
3620
3633
|
nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
|
3621
3634
|
prop: {
|
3622
3635
|
value: function(type){
|
@@ -3633,6 +3646,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3633
3646
|
ret = 'maybe';
|
3634
3647
|
}
|
3635
3648
|
}
|
3649
|
+
if(!ret && hasYt && type == 'video/youtube'){
|
3650
|
+
ret = 'maybe';
|
3651
|
+
}
|
3636
3652
|
return ret;
|
3637
3653
|
}
|
3638
3654
|
}
|
@@ -3682,8 +3698,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
3682
3698
|
});
|
3683
3699
|
}
|
3684
3700
|
};
|
3685
|
-
|
3686
3701
|
|
3702
|
+
mediaelement.loadDebugger = function(){
|
3703
|
+
webshims.ready('dom-support', function(){
|
3704
|
+
webshims.loader.loadScript('mediaelement-debug');
|
3705
|
+
});
|
3706
|
+
};
|
3707
|
+
|
3708
|
+
if(({noCombo: 1, media: 1})[webshims.cfg.debug]){
|
3709
|
+
$(document).on('mediaerror', function(e){
|
3710
|
+
mediaelement.loadDebugger();
|
3711
|
+
});
|
3712
|
+
}
|
3687
3713
|
//set native implementation ready, before swf api is retested
|
3688
3714
|
if(hasNative){
|
3689
3715
|
webshims.isReady('mediaelement-core', true);
|