webshims-rails 1.14.5 → 1.14.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -0
  3. data/lib/webshims-rails/version.rb +2 -2
  4. data/readme.textile +7 -0
  5. data/vendor/assets/javascripts/webshims/polyfiller.js +38 -6
  6. data/vendor/assets/javascripts/webshims/shims/combos/1.js +26 -20
  7. data/vendor/assets/javascripts/webshims/shims/combos/10.js +54 -19
  8. data/vendor/assets/javascripts/webshims/shims/combos/11.js +32 -15
  9. data/vendor/assets/javascripts/webshims/shims/combos/12.js +45 -21
  10. data/vendor/assets/javascripts/webshims/shims/combos/13.js +45 -21
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +22 -4
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +48 -24
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +32 -15
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +18 -81
  15. data/vendor/assets/javascripts/webshims/shims/combos/2.js +48 -24
  16. data/vendor/assets/javascripts/webshims/shims/combos/21.js +286 -179
  17. data/vendor/assets/javascripts/webshims/shims/combos/22.js +19 -1
  18. data/vendor/assets/javascripts/webshims/shims/combos/23.js +26 -20
  19. data/vendor/assets/javascripts/webshims/shims/combos/25.js +311 -199
  20. data/vendor/assets/javascripts/webshims/shims/combos/26.js +22 -17
  21. data/vendor/assets/javascripts/webshims/shims/combos/27.js +22 -17
  22. data/vendor/assets/javascripts/webshims/shims/combos/3.js +22 -4
  23. data/vendor/assets/javascripts/webshims/shims/combos/30.js +22 -4
  24. data/vendor/assets/javascripts/webshims/shims/combos/31.js +22 -4
  25. data/vendor/assets/javascripts/webshims/shims/combos/34.js +41 -5
  26. data/vendor/assets/javascripts/webshims/shims/combos/4.js +22 -4
  27. data/vendor/assets/javascripts/webshims/shims/combos/5.js +32 -15
  28. data/vendor/assets/javascripts/webshims/shims/combos/6.js +32 -15
  29. data/vendor/assets/javascripts/webshims/shims/combos/7.js +48 -24
  30. data/vendor/assets/javascripts/webshims/shims/combos/8.js +48 -24
  31. data/vendor/assets/javascripts/webshims/shims/combos/9.js +54 -19
  32. data/vendor/assets/javascripts/webshims/shims/combos/98.js +24 -7
  33. data/vendor/assets/javascripts/webshims/shims/combos/99.js +24 -7
  34. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +22 -4
  35. data/vendor/assets/javascripts/webshims/shims/es5.js +3 -1
  36. data/vendor/assets/javascripts/webshims/shims/es6.js +1 -5
  37. data/vendor/assets/javascripts/webshims/shims/filereader.js +22 -17
  38. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +32 -15
  39. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +18 -8
  40. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fa.js +1 -1
  41. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +11 -0
  42. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +16 -0
  43. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +3 -20
  44. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols.js +24 -7
  45. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +26 -20
  46. data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +9 -1
  47. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +267 -178
  48. data/vendor/assets/javascripts/webshims/shims/picture.js +18 -81
  49. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +1 -9
  50. data/vendor/assets/javascripts/webshims/shims/sizzle.js +1 -8
  51. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +4 -0
  52. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +5 -0
  53. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +4 -0
  54. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/track.js +19 -1
  56. data/vendor/assets/javascripts/webshims/shims/url.js +316 -0
  57. data/vendor/assets/javascripts/webshims/shims/usermedia-core.js +28 -0
  58. data/vendor/assets/javascripts/webshims/shims/usermedia-shim.js +179 -0
  59. metadata +5 -3
  60. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +0 -511
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fb14a14f9a0126a142216b430620a282015327e1
4
- data.tar.gz: a12e38b142fd8fc6a618518d6c6554be12e1af4e
3
+ metadata.gz: 5c16961f85118c8f474aa4dfe6dfed31bb9dca18
4
+ data.tar.gz: 7d5c4bdc8bad9aec82b6c2f3b4600b42c42794b3
5
5
  SHA512:
6
- metadata.gz: b85682625ab66fad121917cd6a5260afec7f5636748a7809c78c74f9221f4e0bbc13bb7320ce14536dbea7060f5fee611375b64f4fa38298552032cff80280e0
7
- data.tar.gz: 4e2b1a4a78dc81fe7db86b52227cc656ca0bad1d56619f4ef64b644170689d4d7a83c434d26bc06bee58f24c4044b85d0145f494967d5c16e42c8b01063094e3
6
+ metadata.gz: 5e2f592a44627b885a9bef54c36c7b89aeaa52e8c48eed83ad6e31517f36ab54dcfd8a70b89f041264283cdc82c01496042027d50f7d52653ca5b966b80db09d
7
+ data.tar.gz: a4af5d272d7b4526915d77f9478a916a107cddf1e254bcd1f37765dfe5cc2d315dedbcf1bea26548ce5c4923f58c09bae1c7a03e487b333a2b5ce9c20416017a
data/Rakefile CHANGED
@@ -1,5 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
2
 
3
+ desc "Update the source from the webshim github [Specify REF and VERSION]."
3
4
  task :update do
4
5
  if ! ENV['REF']
5
6
  raise "No REF value given. Set branch/tag/id, e.g., REF=1.2.2"
@@ -42,6 +43,7 @@ EOT
42
43
  input = STDIN.gets.strip
43
44
  end
44
45
 
46
+ desc "Commit changes, build and push the gem."
45
47
  task :push do
46
48
  if ! ENV['VERSION']
47
49
  raise "No VERSION value given. Set version, e.g., VERSION=1.2.2"
@@ -1,6 +1,6 @@
1
1
  module Webshims
2
2
  module Rails
3
- VERSION = "1.14.5"
4
- WEBSHIMS_VERSION = "1.14.5"
3
+ VERSION = "1.14.6"
4
+ WEBSHIMS_VERSION = "1.14.6"
5
5
  end
6
6
  end
data/readme.textile CHANGED
@@ -41,6 +41,13 @@ Users of previous webshims-rails versions should update their sprockets requires
41
41
  $.webshims.polyfill()
42
42
  </pre>
43
43
 
44
+ h2. Updating
45
+
46
+ There's a quick-and-dirty rake task in the repository to checkout webshims from github, checkout a git ref, and copy the required scripts over.
47
+
48
+ <pre>
49
+ rake update VERSION=1.14.5
50
+ </pre>
44
51
 
45
52
  h2. License
46
53
 
@@ -107,7 +107,8 @@
107
107
  var featureAlias = {
108
108
  matchmedia: 'matchMedia',
109
109
  xhr2: 'filereader',
110
- promise: 'es6'
110
+ promise: 'es6',
111
+ URL: 'url'
111
112
  };
112
113
 
113
114
  clearInterval(webshims.timer);
@@ -126,7 +127,7 @@
126
127
  }
127
128
 
128
129
  $.extend(webshims, {
129
- version: '1.14.5',
130
+ version: '1.14.6',
130
131
 
131
132
  cfg: {
132
133
  enhanceAuto: window.Audio && (!window.matchMedia || matchMedia('(min-device-width: 721px)').matches),
@@ -623,6 +624,7 @@
623
624
  error: 1
624
625
  };
625
626
  var $fn = $.fn;
627
+ var video = create('video');
626
628
 
627
629
  webshims.addMethodName = function(name){
628
630
  name = name.split(':');
@@ -968,6 +970,22 @@
968
970
  c: [21]
969
971
  });
970
972
  //>
973
+
974
+ //<usermedia
975
+ var userMediaTest = ('getUserMedia' in navigator);
976
+
977
+ addPolyfill('usermedia-core', {
978
+ f: 'usermedia',
979
+ test: userMediaTest,
980
+ d: [DOMSUPPORT]
981
+ });
982
+
983
+ addPolyfill('usermedia-shim', {
984
+ f: 'usermedia',
985
+ test: !!(userMediaTest || navigator.webkitGetUserMedia || navigator.mozGetUserMedia),
986
+ d: ['url', 'mediaelement', DOMSUPPORT]
987
+ });
988
+ //>
971
989
 
972
990
  //<canvas
973
991
  (function(){
@@ -1007,6 +1025,7 @@
1007
1025
 
1008
1026
  var initialFormTest = function(){
1009
1027
  var tmp, fieldset;
1028
+ var testValue = '1(';
1010
1029
  var input = create('input');
1011
1030
  fieldset = $('<fieldset><textarea required="" /></fieldset>')[0];
1012
1031
 
@@ -1014,7 +1033,7 @@
1014
1033
 
1015
1034
  $.each(['range', 'date', 'datetime-local', 'month', 'color', 'number'], function(i, type){
1016
1035
  input.setAttribute('type', type);
1017
- inputtypes[type] = (input.type == type && (input.value = '(') && input.value != '(');
1036
+ inputtypes[type] = (input.type == type && (input.value = testValue) && input.value != testValue);
1018
1037
  });
1019
1038
 
1020
1039
  support.datalist = !!(('options' in create('datalist')) && window.HTMLDataListElement);
@@ -1240,10 +1259,23 @@
1240
1259
  });
1241
1260
  //>
1242
1261
 
1262
+ //<url
1263
+ addPolyfill('url', {
1264
+ test: function(){
1265
+ var support = false;
1266
+ try {
1267
+ support = new URL('b', 'http://a');
1268
+ support = !!(support.searchParams && support.href == 'http://a/b');
1269
+ } catch(e){}
1270
+ return support;
1271
+ },
1272
+ d: ['es5']
1273
+ });
1274
+ //>
1275
+
1243
1276
  //<mediaelement
1244
1277
  (function(){
1245
1278
  webshims.mediaelement = {};
1246
- var video = create('video');
1247
1279
  var track = create('track');
1248
1280
  support.mediaelement = ('canPlayType' in video);
1249
1281
  support.texttrackapi = ('addTextTrack' in video);
@@ -1273,7 +1305,7 @@
1273
1305
  d: ['swfmini'],
1274
1306
  c: [16, 7, 2, 8, 1, 12, 13, 23]
1275
1307
  });
1276
-
1308
+
1277
1309
 
1278
1310
  addPolyfill('mediaelement-jaris', {
1279
1311
  f: 'mediaelement',
@@ -1288,7 +1320,7 @@
1288
1320
  if(options.preferFlash && !modules.swfmini.test()){
1289
1321
  options.preferFlash = false;
1290
1322
  }
1291
- return !( options.preferFlash && swfmini.hasFlashPlayerVersion('10.0.3') );
1323
+ return !( options.preferFlash && swfmini.hasFlashPlayerVersion('11.3') );
1292
1324
  },
1293
1325
  c: [21, 25]
1294
1326
  });
@@ -607,7 +607,7 @@ webshims.isReady('swfmini', true);
607
607
  }
608
608
 
609
609
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
610
- var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
610
+ var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
611
611
  var mediaelement = webshims.mediaelement;
612
612
 
613
613
  mediaelement.parseRtmp = function(data){
@@ -717,6 +717,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
717
717
  loadYt();
718
718
  }
719
719
  };
720
+
720
721
 
721
722
  webshims.addPolyfill('mediaelement-yt', {
722
723
  test: !hasYt,
@@ -761,7 +762,16 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
761
762
  if(src.indexOf('youtube.com/watch?') != -1 || src.indexOf('youtube.com/v/') != -1){
762
763
  return 'video/youtube';
763
764
  }
764
- if(src.indexOf('rtmp') === 0){
765
+
766
+ if(!src.indexOf('mediastream:') || !src.indexOf('blob:http')){
767
+ return 'usermedia';
768
+ }
769
+
770
+ if(!src.indexOf('webshimstream')){
771
+ return 'jarisplayer/stream';
772
+ }
773
+
774
+ if(!src.indexOf('rtmp')){
765
775
  return nodeName+'/rtmp';
766
776
  }
767
777
  src = src.split('?')[0].split('#')[0].split('.');
@@ -778,28 +788,24 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
778
788
  };
779
789
 
780
790
 
781
- mediaelement.srces = function(mediaElem, srces){
791
+ mediaelement.srces = function(mediaElem){
792
+ var srces = [];
782
793
  mediaElem = $(mediaElem);
783
- if(!srces){
784
- srces = [];
785
- var nodeName = mediaElem[0].nodeName.toLowerCase();
786
- var src = getSrcObj(mediaElem, nodeName);
787
-
788
- if(!src.src){
789
- $('source', mediaElem).each(function(){
790
- src = getSrcObj(this, nodeName);
791
- if(src.src){srces.push(src);}
792
- });
793
- } else {
794
- srces.push(src);
795
- }
796
- return srces;
794
+ var nodeName = mediaElem[0].nodeName.toLowerCase();
795
+ var src = getSrcObj(mediaElem, nodeName);
796
+
797
+ if(!src.src){
798
+ $('source', mediaElem).each(function(){
799
+ src = getSrcObj(this, nodeName);
800
+ if(src.src){srces.push(src);}
801
+ });
797
802
  } else {
798
- webshims.error('setting sources was removed.');
803
+ srces.push(src);
799
804
  }
805
+ return srces;
800
806
  };
801
807
 
802
- 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'];
808
+ 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'];
803
809
 
804
810
  mediaelement.canThirdPlaySrces = function(mediaElem, srces){
805
811
  var ret = '';
@@ -829,7 +835,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
829
835
  srces = srces || mediaelement.srces(mediaElem);
830
836
 
831
837
  $.each(srces, function(i, src){
832
- if(src.type && nativeCanPlay.call(mediaElem[0], src.type) ){
838
+ if(src.type == 'usermedia' || (src.type && nativeCanPlay.call(mediaElem[0], src.type)) ){
833
839
  ret = src;
834
840
  return false;
835
841
  }
@@ -60,7 +60,6 @@
60
60
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
61
61
  "use strict";
62
62
  var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
63
- var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
64
63
  var has = Object.prototype.hasOwnProperty;
65
64
  webshims.assumeARIA = true;
66
65
 
@@ -91,7 +90,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
91
90
  }
92
91
 
93
92
  //shortcus
94
- var modules = webshims.modules;
95
93
  var listReg = /\s*,\s*/;
96
94
 
97
95
  //proxying attribute
@@ -476,8 +474,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
476
474
  (tempCache || $( document.getElementsByTagName(nodeName) )).each(fn);
477
475
  }
478
476
  };
479
-
480
- var elementExtends = {};
477
+
481
478
  return {
482
479
  createTmpCache: function(nodeName){
483
480
  if($.isDOMReady){
@@ -529,6 +526,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
529
526
  };
530
527
 
531
528
  $.extend(webshims, {
529
+ xProps: havePolyfill,
532
530
  getID: (function(){
533
531
  var ID = new Date().getTime();
534
532
  return function(elem){
@@ -542,6 +540,26 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
542
540
  return id;
543
541
  };
544
542
  })(),
543
+ domPrefixes: ["ws", "webkit", "moz", "ms", "o"],
544
+
545
+ prefixed: function (prop, obj){
546
+ var i, testProp;
547
+ var ret = false;
548
+ if(obj[prop]){
549
+ ret = prop;
550
+ }
551
+ if(!ret){
552
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
553
+ for(i = 0; i < webshims.domPrefixes.length; i++){
554
+ testProp = webshims.domPrefixes[i]+prop;
555
+ if(testProp in obj){
556
+ ret = testProp;
557
+ break;
558
+ }
559
+ }
560
+ }
561
+ return ret;
562
+ },
545
563
  shadowClass: 'wsshadow-'+(Date.now()),
546
564
  implement: function(elem, type){
547
565
  var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
@@ -2255,22 +2273,36 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2255
2273
  }
2256
2274
  return val;
2257
2275
  },
2258
- time: function(val){
2259
- var fVal;
2260
- if(val && curCfg.meridian){
2276
+ time: function(val, o, noCorrect){
2277
+ var fVal, i;
2278
+ if(val){
2279
+
2261
2280
  val = val.split(':');
2262
- fVal = (val[0] * 1);
2263
- if(fVal && fVal >= 12){
2264
- val[0] = addZero(fVal - 12+'');
2265
- fVal = 1;
2266
-
2267
- } else {
2268
- fVal = 0;
2281
+ if(curCfg.meridian){
2282
+ fVal = (val[0] * 1);
2283
+ if(fVal && fVal >= 12){
2284
+ val[0] = addZero(fVal - 12+'');
2285
+ fVal = 1;
2286
+ } else {
2287
+ fVal = 0;
2288
+ }
2289
+ if(val[0] === '00'){
2290
+ val[0] = '12';
2291
+ }
2292
+ }
2293
+ if(!noCorrect){
2294
+ for(i = 0; i < val.length; i++){
2295
+ val[i] = addZero(val[i]);
2296
+ }
2297
+
2298
+ if(!val[1]){
2299
+ val[1] = '00';
2300
+ }
2269
2301
  }
2270
- if(val[0] === '00'){
2271
- val[0] = '12';
2302
+ val = $.trim(val.join(':'));
2303
+ if(fVal != null && curCfg.meridian){
2304
+ val += ' '+curCfg.meridian[fVal];
2272
2305
  }
2273
- val = $.trim(val.join(':')) + ' '+ curCfg.meridian[fVal];
2274
2306
  }
2275
2307
  return val;
2276
2308
  },
@@ -2359,12 +2391,15 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2359
2391
  var fVal;
2360
2392
  if(val && curCfg.meridian){
2361
2393
  val = val.toUpperCase();
2362
- if(val.substr(0,2) === "12"){
2394
+ if(val.substr(0,2) === "12"){
2363
2395
  val = "00" + val.substr(2);
2364
2396
  }
2397
+
2365
2398
  if(val.indexOf(curCfg.meridian[1]) != -1){
2399
+
2366
2400
  val = val.split(':');
2367
- fVal = (val[0] * 1);
2401
+ fVal = (val[0].replace(curCfg.meridian[1], '') * 1);
2402
+
2368
2403
  if(!isNaN(fVal)){
2369
2404
  val[0] = fVal + 12;
2370
2405
  }
@@ -1042,22 +1042,36 @@
1042
1042
  }
1043
1043
  return val;
1044
1044
  },
1045
- time: function(val){
1046
- var fVal;
1047
- if(val && curCfg.meridian){
1045
+ time: function(val, o, noCorrect){
1046
+ var fVal, i;
1047
+ if(val){
1048
+
1048
1049
  val = val.split(':');
1049
- fVal = (val[0] * 1);
1050
- if(fVal && fVal >= 12){
1051
- val[0] = addZero(fVal - 12+'');
1052
- fVal = 1;
1053
-
1054
- } else {
1055
- fVal = 0;
1050
+ if(curCfg.meridian){
1051
+ fVal = (val[0] * 1);
1052
+ if(fVal && fVal >= 12){
1053
+ val[0] = addZero(fVal - 12+'');
1054
+ fVal = 1;
1055
+ } else {
1056
+ fVal = 0;
1057
+ }
1058
+ if(val[0] === '00'){
1059
+ val[0] = '12';
1060
+ }
1061
+ }
1062
+ if(!noCorrect){
1063
+ for(i = 0; i < val.length; i++){
1064
+ val[i] = addZero(val[i]);
1065
+ }
1066
+
1067
+ if(!val[1]){
1068
+ val[1] = '00';
1069
+ }
1056
1070
  }
1057
- if(val[0] === '00'){
1058
- val[0] = '12';
1071
+ val = $.trim(val.join(':'));
1072
+ if(fVal != null && curCfg.meridian){
1073
+ val += ' '+curCfg.meridian[fVal];
1059
1074
  }
1060
- val = $.trim(val.join(':')) + ' '+ curCfg.meridian[fVal];
1061
1075
  }
1062
1076
  return val;
1063
1077
  },
@@ -1146,12 +1160,15 @@
1146
1160
  var fVal;
1147
1161
  if(val && curCfg.meridian){
1148
1162
  val = val.toUpperCase();
1149
- if(val.substr(0,2) === "12"){
1163
+ if(val.substr(0,2) === "12"){
1150
1164
  val = "00" + val.substr(2);
1151
1165
  }
1166
+
1152
1167
  if(val.indexOf(curCfg.meridian[1]) != -1){
1168
+
1153
1169
  val = val.split(':');
1154
- fVal = (val[0] * 1);
1170
+ fVal = (val[0].replace(curCfg.meridian[1], '') * 1);
1171
+
1155
1172
  if(!isNaN(fVal)){
1156
1173
  val[0] = fVal + 12;
1157
1174
  }
@@ -282,7 +282,7 @@ webshims.isReady('swfmini', true);
282
282
  }
283
283
 
284
284
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
285
- var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
285
+ var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
286
286
  var mediaelement = webshims.mediaelement;
287
287
 
288
288
  mediaelement.parseRtmp = function(data){
@@ -392,6 +392,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
392
392
  loadYt();
393
393
  }
394
394
  };
395
+
395
396
 
396
397
  webshims.addPolyfill('mediaelement-yt', {
397
398
  test: !hasYt,
@@ -436,7 +437,16 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
436
437
  if(src.indexOf('youtube.com/watch?') != -1 || src.indexOf('youtube.com/v/') != -1){
437
438
  return 'video/youtube';
438
439
  }
439
- if(src.indexOf('rtmp') === 0){
440
+
441
+ if(!src.indexOf('mediastream:') || !src.indexOf('blob:http')){
442
+ return 'usermedia';
443
+ }
444
+
445
+ if(!src.indexOf('webshimstream')){
446
+ return 'jarisplayer/stream';
447
+ }
448
+
449
+ if(!src.indexOf('rtmp')){
440
450
  return nodeName+'/rtmp';
441
451
  }
442
452
  src = src.split('?')[0].split('#')[0].split('.');
@@ -453,28 +463,24 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
453
463
  };
454
464
 
455
465
 
456
- mediaelement.srces = function(mediaElem, srces){
466
+ mediaelement.srces = function(mediaElem){
467
+ var srces = [];
457
468
  mediaElem = $(mediaElem);
458
- if(!srces){
459
- srces = [];
460
- var nodeName = mediaElem[0].nodeName.toLowerCase();
461
- var src = getSrcObj(mediaElem, nodeName);
462
-
463
- if(!src.src){
464
- $('source', mediaElem).each(function(){
465
- src = getSrcObj(this, nodeName);
466
- if(src.src){srces.push(src);}
467
- });
468
- } else {
469
- srces.push(src);
470
- }
471
- return srces;
469
+ var nodeName = mediaElem[0].nodeName.toLowerCase();
470
+ var src = getSrcObj(mediaElem, nodeName);
471
+
472
+ if(!src.src){
473
+ $('source', mediaElem).each(function(){
474
+ src = getSrcObj(this, nodeName);
475
+ if(src.src){srces.push(src);}
476
+ });
472
477
  } else {
473
- webshims.error('setting sources was removed.');
478
+ srces.push(src);
474
479
  }
480
+ return srces;
475
481
  };
476
482
 
477
- 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'];
483
+ 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'];
478
484
 
479
485
  mediaelement.canThirdPlaySrces = function(mediaElem, srces){
480
486
  var ret = '';
@@ -504,7 +510,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
504
510
  srces = srces || mediaelement.srces(mediaElem);
505
511
 
506
512
  $.each(srces, function(i, src){
507
- if(src.type && nativeCanPlay.call(mediaElem[0], src.type) ){
513
+ if(src.type == 'usermedia' || (src.type && nativeCanPlay.call(mediaElem[0], src.type)) ){
508
514
  ret = src;
509
515
  return false;
510
516
  }
@@ -1219,11 +1225,29 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1219
1225
  webshims.error('you must provide a language for track in subtitles state');
1220
1226
  }
1221
1227
  obj.__wsmode = obj.mode;
1228
+
1229
+ webshims.defineProperty(obj, '_wsUpdateMode', {
1230
+ value: function(){
1231
+ $(mediaelem).triggerHandler('updatetrackdisplay');
1232
+ },
1233
+ enumerable: false
1234
+ });
1222
1235
  }
1223
1236
 
1224
1237
  return obj;
1225
1238
  };
1226
1239
 
1240
+ if(!$.propHooks.mode){
1241
+ $.propHooks.mode = {
1242
+ set: function(obj, value){
1243
+ obj.mode = value;
1244
+ if(obj._wsUpdateMode && obj._wsUpdateMode.call){
1245
+ obj._wsUpdateMode();
1246
+ }
1247
+ return obj.mode;
1248
+ }
1249
+ };
1250
+ }
1227
1251
 
1228
1252
  /*
1229
1253
  taken from:
@@ -1474,7 +1498,7 @@ modified for webshims
1474
1498
  var name = copyName[copyProp] || copyProp;
1475
1499
  webshims.onNodeNamesPropertyModify('track', copyProp, function(){
1476
1500
  var trackData = webshims.data(this, 'trackData');
1477
- var track = this;
1501
+
1478
1502
  if(trackData){
1479
1503
  if(copyProp == 'kind'){
1480
1504
  refreshTrack(this, trackData);