webshims-rails 1.11.3.1 → 1.11.6
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 +114 -104
- data/vendor/assets/javascripts/webshims/extras/mousepress.js +5 -5
- data/vendor/assets/javascripts/webshims/polyfiller.js +156 -207
- data/vendor/assets/javascripts/webshims/shims/$ajax.js +862 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +20 -0
- data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +20 -0
- data/vendor/assets/javascripts/webshims/shims/color-picker.js +12 -12
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +62 -32
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +192 -509
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +96 -415
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +36 -26
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +36 -26
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +1007 -359
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +310 -235
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +313 -237
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +96 -415
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +1003 -678
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +1085 -387
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +161 -127
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +1086 -388
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +168 -96
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +36 -27
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +411 -172
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +1085 -387
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +96 -94
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +163 -140
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +166 -141
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +159 -126
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +103 -109
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +98 -417
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +101 -418
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +168 -142
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +165 -141
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +195 -510
- data/vendor/assets/javascripts/webshims/shims/details.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +96 -94
- data/vendor/assets/javascripts/webshims/shims/es5.js +908 -264
- data/vendor/assets/javascripts/webshims/shims/excanvas.js +16 -1
- data/vendor/assets/javascripts/webshims/shims/form-combat.js +147 -0
- data/vendor/assets/javascripts/webshims/shims/form-core.js +60 -31
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +114 -33
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +3 -1
- data/vendor/assets/javascripts/webshims/shims/form-message.js +7 -15
- data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +88 -410
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +143 -93
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +268 -79
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +116 -81
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +23 -10
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +605 -9
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +51 -39
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +78 -33
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +24 -6
- data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +110 -49
- data/vendor/assets/javascripts/webshims/shims/json-storage.js +3 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +81 -30
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +131 -54
- data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +497 -0
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +8 -5
- data/vendor/assets/javascripts/webshims/shims/sizzle.js +2026 -0
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +401 -521
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +1 -1
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +94 -82
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +250 -321
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/track.js +34 -25
- metadata +7 -3
@@ -16,6 +16,7 @@
|
|
16
16
|
errorTimer,
|
17
17
|
googleTimer,
|
18
18
|
calledEnd,
|
19
|
+
createAjax,
|
19
20
|
endCallback = function(){
|
20
21
|
if(calledEnd){return;}
|
21
22
|
if(pos){
|
@@ -39,7 +40,7 @@
|
|
39
40
|
endCallback();
|
40
41
|
},
|
41
42
|
resetCallback = function(){
|
42
|
-
$(document).
|
43
|
+
$(document).off('google-loader', resetCallback);
|
43
44
|
clearTimeout(googleTimer);
|
44
45
|
clearTimeout(errorTimer);
|
45
46
|
},
|
@@ -84,44 +85,52 @@
|
|
84
85
|
}
|
85
86
|
return;
|
86
87
|
}
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
88
|
+
createAjax = function(){
|
89
|
+
$.ajax({
|
90
|
+
url: 'http://freegeoip.net/json/',
|
91
|
+
dataType: 'jsonp',
|
92
|
+
cache: true,
|
93
|
+
jsonp: 'callback',
|
94
|
+
success: function(data){
|
95
|
+
locationAPIs--;
|
96
|
+
if(!data){return;}
|
97
|
+
pos = pos || {
|
98
|
+
coords: {
|
99
|
+
latitude: data.latitude,
|
100
|
+
longitude: data.longitude,
|
101
|
+
altitude: null,
|
102
|
+
accuracy: 43000,
|
103
|
+
altitudeAccuracy: null,
|
104
|
+
heading: parseInt('NaN', 10),
|
105
|
+
velocity: null
|
106
|
+
},
|
107
|
+
//extension similiar to FF implementation
|
108
|
+
address: {
|
109
|
+
city: data.city,
|
110
|
+
country: data.country_name,
|
111
|
+
countryCode: data.country_code,
|
112
|
+
county: "",
|
113
|
+
postalCode: data.zipcode,
|
114
|
+
premises: "",
|
115
|
+
region: data.region_name,
|
116
|
+
street: "",
|
117
|
+
streetNumber: ""
|
118
|
+
}
|
119
|
+
};
|
120
|
+
endCallback();
|
121
|
+
},
|
122
|
+
error: function(){
|
123
|
+
locationAPIs--;
|
124
|
+
endCallback();
|
125
|
+
}
|
126
|
+
});
|
127
|
+
};
|
128
|
+
if($.ajax){
|
129
|
+
createAjax();
|
130
|
+
} else {
|
131
|
+
webshims.ready('$ajax', createAjax);
|
132
|
+
webshims.loader.loadList(['$ajax']);
|
133
|
+
}
|
125
134
|
clearTimeout(googleTimer);
|
126
135
|
if (!window.google || !window.google.loader) {
|
127
136
|
googleTimer = setTimeout(function(){
|
@@ -164,6 +173,9 @@
|
|
164
173
|
return api;
|
165
174
|
})();
|
166
175
|
|
176
|
+
webshims.ready('WINDOWLOAD', function(){
|
177
|
+
webshims.loader.loadList(['$ajax']);
|
178
|
+
});
|
167
179
|
webshims.isReady('geolocation', true);
|
168
180
|
})(webshims.$);
|
169
181
|
|
@@ -186,7 +198,7 @@ webshims.register('details', function($, webshims, window, doc, undefined, optio
|
|
186
198
|
oldSummary.remove();
|
187
199
|
} else {
|
188
200
|
oldSummary
|
189
|
-
.
|
201
|
+
.off('.summaryPolyfill')
|
190
202
|
.removeData('detailsElement')
|
191
203
|
.removeAttr('role')
|
192
204
|
.removeAttr('tabindex')
|
@@ -204,7 +216,7 @@ webshims.register('details', function($, webshims, window, doc, undefined, optio
|
|
204
216
|
var getSummary = function(details){
|
205
217
|
var summary = $.data(details, 'summaryElement');
|
206
218
|
if(!summary){
|
207
|
-
summary = $('
|
219
|
+
summary = $(details).children('summary:first-child');
|
208
220
|
if(!summary[0]){
|
209
221
|
$(details).prependPolyfill('<summary class="fallback-summary">'+ options.text +'</summary>');
|
210
222
|
summary = $.data(details, 'summaryElement');
|
@@ -772,9 +784,9 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
772
784
|
})();
|
773
785
|
|
774
786
|
|
775
|
-
var
|
787
|
+
var getComputedDimension = (function(){
|
776
788
|
var dimCache = {};
|
777
|
-
var
|
789
|
+
var getVideoDims = function(data){
|
778
790
|
var ret, poster, img;
|
779
791
|
if(dimCache[data.currentSrc]){
|
780
792
|
ret = dimCache[data.currentSrc];
|
@@ -799,54 +811,102 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
799
811
|
} else {
|
800
812
|
delete dimCache[poster];
|
801
813
|
}
|
814
|
+
img.onload = null;
|
802
815
|
};
|
803
816
|
img.src = poster;
|
804
|
-
if(img.complete){
|
817
|
+
if(img.complete && img.onload){
|
805
818
|
img.onload();
|
806
819
|
}
|
807
820
|
}
|
808
821
|
}
|
809
822
|
return ret || {width: 300, height: data._elemNodeName == 'video' ? 150 : 50};
|
810
823
|
};
|
811
|
-
|
812
|
-
|
813
|
-
|
824
|
+
|
825
|
+
var getCssStyle = function(elem, style){
|
826
|
+
return elem.style[style] || (elem.currentStyle && elem.currentStyle[style]) || (window.getComputedStyle && (window.getComputedStyle( elem, null ) || {} )[style]) || '';
|
827
|
+
};
|
828
|
+
var minMaxProps = ['minWidth', 'maxWidth', 'minHeight', 'maxHeight'];
|
829
|
+
|
830
|
+
var addMinMax = function(elem, ret){
|
831
|
+
var i, prop;
|
832
|
+
var hasMinMax = false;
|
833
|
+
for (i = 0; i < 4; i++) {
|
834
|
+
prop = getCssStyle(elem, minMaxProps[i]);
|
835
|
+
if(parseFloat(prop, 10)){
|
836
|
+
hasMinMax = true;
|
837
|
+
ret[minMaxProps[i]] = prop;
|
838
|
+
}
|
839
|
+
}
|
840
|
+
return hasMinMax;
|
841
|
+
};
|
842
|
+
var retFn = function(data){
|
843
|
+
var videoDims, ratio, hasMinMax;
|
844
|
+
var elem = data._elem;
|
845
|
+
var autos = {
|
846
|
+
width: getCssStyle(elem, 'width') == 'auto',
|
847
|
+
height: getCssStyle(elem, 'height') == 'auto'
|
848
|
+
};
|
849
|
+
var ret = {
|
850
|
+
width: !autos.width && $(elem).width(),
|
851
|
+
height: !autos.height && $(elem).height()
|
852
|
+
};
|
814
853
|
|
815
|
-
if(
|
816
|
-
|
817
|
-
|
818
|
-
ratio = realDims.width / realDims.height;
|
854
|
+
if(autos.width || autos.height){
|
855
|
+
videoDims = getVideoDims(data);
|
856
|
+
ratio = videoDims.width / videoDims.height;
|
819
857
|
|
820
|
-
if(
|
821
|
-
ret =
|
822
|
-
|
823
|
-
|
824
|
-
ret.width =
|
825
|
-
} else {
|
826
|
-
|
827
|
-
|
858
|
+
if(autos.width && autos.height){
|
859
|
+
ret.width = videoDims.width;
|
860
|
+
ret.height = videoDims.height;
|
861
|
+
} else if(autos.width){
|
862
|
+
ret.width = ret.height * ratio;
|
863
|
+
} else if(autos.height){
|
864
|
+
ret.height = ret.width / ratio;
|
865
|
+
}
|
866
|
+
|
867
|
+
if(addMinMax(elem, ret)){
|
868
|
+
data.shadowElem.css(ret);
|
869
|
+
if(autos.width){
|
870
|
+
ret.width = data.shadowElem.height() * ratio;
|
871
|
+
}
|
872
|
+
if(autos.height){
|
873
|
+
ret.height = ((autos.width) ? ret.width : data.shadowElem.width()) / ratio;
|
874
|
+
}
|
875
|
+
if(autos.width && autos.height){
|
876
|
+
data.shadowElem.css(ret);
|
877
|
+
ret.height = data.shadowElem.width() / ratio;
|
878
|
+
ret.width = ret.height * ratio;
|
879
|
+
|
880
|
+
data.shadowElem.css(ret);
|
881
|
+
ret.width = data.shadowElem.height() * ratio;
|
882
|
+
ret.height = ret.width / ratio;
|
883
|
+
|
884
|
+
}
|
885
|
+
if(!Modernizr.video){
|
886
|
+
ret.width = data.shadowElem.width();
|
887
|
+
ret.height = data.shadowElem.height();
|
888
|
+
}
|
828
889
|
}
|
829
890
|
}
|
830
891
|
return ret;
|
831
892
|
};
|
893
|
+
|
894
|
+
return retFn;
|
832
895
|
})();
|
896
|
+
|
833
897
|
var setElementDimension = function(data, hasControls){
|
834
898
|
var dims;
|
835
|
-
|
899
|
+
|
836
900
|
var box = data.shadowElem;
|
837
|
-
$(
|
901
|
+
$(data._elem)[hasControls ? 'addClass' : 'removeClass']('webshims-controls');
|
838
902
|
|
839
|
-
if(data.isActive == 'third'){
|
903
|
+
if(data.isActive == 'third' || data.activating == 'third'){
|
840
904
|
if(data._elemNodeName == 'audio' && !hasControls){
|
841
905
|
box.css({width: 0, height: 0});
|
842
906
|
} else {
|
843
|
-
data.
|
844
|
-
|
845
|
-
|
846
|
-
};
|
847
|
-
dims = transformDimension(data);
|
848
|
-
dims.minWidth = elem.style.minWidth;
|
849
|
-
dims.minHeight = elem.style.minHeight;
|
907
|
+
data._elem.style.display = '';
|
908
|
+
dims = getComputedDimension(data);
|
909
|
+
data._elem.style.display = 'none';
|
850
910
|
box.css(dims);
|
851
911
|
}
|
852
912
|
}
|
@@ -905,6 +965,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
905
965
|
}, 1);
|
906
966
|
return;
|
907
967
|
}
|
968
|
+
|
969
|
+
var attrStyle = {};
|
908
970
|
|
909
971
|
if(loadedSwf < 1){
|
910
972
|
loadedSwf = 1;
|
@@ -915,7 +977,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
915
977
|
data = webshims.data(elem, 'mediaelement');
|
916
978
|
}
|
917
979
|
|
918
|
-
if($.attr(elem, 'height') || $.attr(elem, 'width')){
|
980
|
+
if((attrStyle.height = $.attr(elem, 'height') || '') || (attrStyle.width = $.attr(elem, 'width') || '')){
|
981
|
+
$(elem).css(attrStyle);
|
919
982
|
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.");
|
920
983
|
}
|
921
984
|
|
@@ -1022,7 +1085,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
1022
1085
|
box.insertBefore(elem);
|
1023
1086
|
|
1024
1087
|
if(hasNative){
|
1025
|
-
$.extend(data, {volume: $.prop(elem, 'volume'), muted: $.prop(elem, 'muted')
|
1088
|
+
$.extend(data, {volume: $.prop(elem, 'volume'), muted: $.prop(elem, 'muted')});
|
1026
1089
|
}
|
1027
1090
|
|
1028
1091
|
webshims.addShadowDom(elem, box);
|
@@ -1794,9 +1857,9 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1794
1857
|
var loadEvents = 'play playing updatetrackdisplay';
|
1795
1858
|
var obj = trackData.track;
|
1796
1859
|
var load = function(){
|
1797
|
-
var error, ajax, src;
|
1860
|
+
var error, ajax, src, createAjax;
|
1798
1861
|
if(obj.mode != 'disabled' && $.attr(track, 'src') && (src = $.prop(track, 'src'))){
|
1799
|
-
$(mediaelem).
|
1862
|
+
$(mediaelem).off(loadEvents, load);
|
1800
1863
|
if(!trackData.readyState){
|
1801
1864
|
error = function(){
|
1802
1865
|
trackData.readyState = 3;
|
@@ -1808,26 +1871,34 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1808
1871
|
try {
|
1809
1872
|
obj.cues = mediaelement.createCueList();
|
1810
1873
|
obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = mediaelement.createCueList();
|
1811
|
-
|
1812
|
-
|
1813
|
-
|
1814
|
-
|
1815
|
-
|
1816
|
-
|
1817
|
-
|
1818
|
-
mediaelement.parseCaptions(text, obj, function(cues){
|
1819
|
-
if(cues && 'length' in cues){
|
1820
|
-
trackData.readyState = 2;
|
1821
|
-
$(track).triggerHandler('load');
|
1822
|
-
$(mediaelem).triggerHandler('updatetrackdisplay');
|
1823
|
-
} else {
|
1824
|
-
error();
|
1874
|
+
createAjax = function(){
|
1875
|
+
ajax = $.ajax({
|
1876
|
+
dataType: 'text',
|
1877
|
+
url: src,
|
1878
|
+
success: function(text){
|
1879
|
+
if(ajax.getResponseHeader('content-type') != 'text/vtt'){
|
1880
|
+
webshims.error('set the mime-type of your WebVTT files to text/vtt. see: http://dev.w3.org/html5/webvtt/#text/vtt');
|
1825
1881
|
}
|
1826
|
-
|
1827
|
-
|
1828
|
-
|
1829
|
-
|
1830
|
-
|
1882
|
+
mediaelement.parseCaptions(text, obj, function(cues){
|
1883
|
+
if(cues && 'length' in cues){
|
1884
|
+
trackData.readyState = 2;
|
1885
|
+
$(track).triggerHandler('load');
|
1886
|
+
$(mediaelem).triggerHandler('updatetrackdisplay');
|
1887
|
+
} else {
|
1888
|
+
error();
|
1889
|
+
}
|
1890
|
+
});
|
1891
|
+
|
1892
|
+
},
|
1893
|
+
error: error
|
1894
|
+
});
|
1895
|
+
};
|
1896
|
+
if($.ajax){
|
1897
|
+
createAjax();
|
1898
|
+
} else {
|
1899
|
+
webshims.ready('$ajax', createAjax);
|
1900
|
+
webshims.loader.loadList(['$ajax']);
|
1901
|
+
}
|
1831
1902
|
} catch(er){
|
1832
1903
|
error();
|
1833
1904
|
webshims.error(er);
|
@@ -1840,7 +1911,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1840
1911
|
obj._shimActiveCues = null;
|
1841
1912
|
obj.activeCues = null;
|
1842
1913
|
obj.cues = null;
|
1843
|
-
$(mediaelem).
|
1914
|
+
$(mediaelem).off(loadEvents, load);
|
1844
1915
|
$(mediaelem).on(loadEvents, load);
|
1845
1916
|
if(_default){
|
1846
1917
|
obj.mode = showTracks[obj.kind] ? 'showing' : 'hidden';
|
@@ -2259,8 +2330,8 @@ modified for webshims
|
|
2259
2330
|
}
|
2260
2331
|
}, 'prop');
|
2261
2332
|
|
2262
|
-
|
2263
|
-
|
2333
|
+
//wsmediareload
|
2334
|
+
var thUpdateList = function(e){
|
2264
2335
|
if($(e.target).is('audio, video')){
|
2265
2336
|
var baseData = webshims.data(e.target, 'mediaelementBase');
|
2266
2337
|
if(baseData){
|
@@ -2270,7 +2341,7 @@ modified for webshims
|
|
2270
2341
|
}, 0);
|
2271
2342
|
}
|
2272
2343
|
}
|
2273
|
-
}
|
2344
|
+
};
|
2274
2345
|
|
2275
2346
|
var getNativeReadyState = function(trackElem, textTrack){
|
2276
2347
|
return textTrack.readyState || trackElem.readyState;
|
@@ -2310,6 +2381,7 @@ modified for webshims
|
|
2310
2381
|
.each(function(){
|
2311
2382
|
updateMediaTrackList.call(this);
|
2312
2383
|
})
|
2384
|
+
.on('emptied updatetracklist wsmediareload', thUpdateList)
|
2313
2385
|
.each(function(){
|
2314
2386
|
if(Modernizr.track){
|
2315
2387
|
var shimedTextTracks = $.prop(this, 'textTracks');
|
@@ -17,7 +17,7 @@ webshims.register('details', function($, webshims, window, doc, undefined, optio
|
|
17
17
|
oldSummary.remove();
|
18
18
|
} else {
|
19
19
|
oldSummary
|
20
|
-
.
|
20
|
+
.off('.summaryPolyfill')
|
21
21
|
.removeData('detailsElement')
|
22
22
|
.removeAttr('role')
|
23
23
|
.removeAttr('tabindex')
|
@@ -35,7 +35,7 @@ webshims.register('details', function($, webshims, window, doc, undefined, optio
|
|
35
35
|
var getSummary = function(details){
|
36
36
|
var summary = $.data(details, 'summaryElement');
|
37
37
|
if(!summary){
|
38
|
-
summary = $('
|
38
|
+
summary = $(details).children('summary:first-child');
|
39
39
|
if(!summary[0]){
|
40
40
|
$(details).prependPolyfill('<summary class="fallback-summary">'+ options.text +'</summary>');
|
41
41
|
summary = $.data(details, 'summaryElement');
|
@@ -467,9 +467,9 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
467
467
|
var loadEvents = 'play playing updatetrackdisplay';
|
468
468
|
var obj = trackData.track;
|
469
469
|
var load = function(){
|
470
|
-
var error, ajax, src;
|
470
|
+
var error, ajax, src, createAjax;
|
471
471
|
if(obj.mode != 'disabled' && $.attr(track, 'src') && (src = $.prop(track, 'src'))){
|
472
|
-
$(mediaelem).
|
472
|
+
$(mediaelem).off(loadEvents, load);
|
473
473
|
if(!trackData.readyState){
|
474
474
|
error = function(){
|
475
475
|
trackData.readyState = 3;
|
@@ -481,26 +481,34 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
481
481
|
try {
|
482
482
|
obj.cues = mediaelement.createCueList();
|
483
483
|
obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = mediaelement.createCueList();
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
mediaelement.parseCaptions(text, obj, function(cues){
|
492
|
-
if(cues && 'length' in cues){
|
493
|
-
trackData.readyState = 2;
|
494
|
-
$(track).triggerHandler('load');
|
495
|
-
$(mediaelem).triggerHandler('updatetrackdisplay');
|
496
|
-
} else {
|
497
|
-
error();
|
484
|
+
createAjax = function(){
|
485
|
+
ajax = $.ajax({
|
486
|
+
dataType: 'text',
|
487
|
+
url: src,
|
488
|
+
success: function(text){
|
489
|
+
if(ajax.getResponseHeader('content-type') != 'text/vtt'){
|
490
|
+
webshims.error('set the mime-type of your WebVTT files to text/vtt. see: http://dev.w3.org/html5/webvtt/#text/vtt');
|
498
491
|
}
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
492
|
+
mediaelement.parseCaptions(text, obj, function(cues){
|
493
|
+
if(cues && 'length' in cues){
|
494
|
+
trackData.readyState = 2;
|
495
|
+
$(track).triggerHandler('load');
|
496
|
+
$(mediaelem).triggerHandler('updatetrackdisplay');
|
497
|
+
} else {
|
498
|
+
error();
|
499
|
+
}
|
500
|
+
});
|
501
|
+
|
502
|
+
},
|
503
|
+
error: error
|
504
|
+
});
|
505
|
+
};
|
506
|
+
if($.ajax){
|
507
|
+
createAjax();
|
508
|
+
} else {
|
509
|
+
webshims.ready('$ajax', createAjax);
|
510
|
+
webshims.loader.loadList(['$ajax']);
|
511
|
+
}
|
504
512
|
} catch(er){
|
505
513
|
error();
|
506
514
|
webshims.error(er);
|
@@ -513,7 +521,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
513
521
|
obj._shimActiveCues = null;
|
514
522
|
obj.activeCues = null;
|
515
523
|
obj.cues = null;
|
516
|
-
$(mediaelem).
|
524
|
+
$(mediaelem).off(loadEvents, load);
|
517
525
|
$(mediaelem).on(loadEvents, load);
|
518
526
|
if(_default){
|
519
527
|
obj.mode = showTracks[obj.kind] ? 'showing' : 'hidden';
|
@@ -932,8 +940,8 @@ modified for webshims
|
|
932
940
|
}
|
933
941
|
}, 'prop');
|
934
942
|
|
935
|
-
|
936
|
-
|
943
|
+
//wsmediareload
|
944
|
+
var thUpdateList = function(e){
|
937
945
|
if($(e.target).is('audio, video')){
|
938
946
|
var baseData = webshims.data(e.target, 'mediaelementBase');
|
939
947
|
if(baseData){
|
@@ -943,7 +951,7 @@ modified for webshims
|
|
943
951
|
}, 0);
|
944
952
|
}
|
945
953
|
}
|
946
|
-
}
|
954
|
+
};
|
947
955
|
|
948
956
|
var getNativeReadyState = function(trackElem, textTrack){
|
949
957
|
return textTrack.readyState || trackElem.readyState;
|
@@ -983,6 +991,7 @@ modified for webshims
|
|
983
991
|
.each(function(){
|
984
992
|
updateMediaTrackList.call(this);
|
985
993
|
})
|
994
|
+
.on('emptied updatetracklist wsmediareload', thUpdateList)
|
986
995
|
.each(function(){
|
987
996
|
if(Modernizr.track){
|
988
997
|
var shimedTextTracks = $.prop(this, 'textTracks');
|
@@ -495,7 +495,7 @@ var swfmini = function() {
|
|
495
495
|
var switchOptions = function(e){
|
496
496
|
var media, error, parent;
|
497
497
|
if(!options.preferFlash &&
|
498
|
-
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source
|
498
|
+
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source', parent).last()[0] == e.target)) &&
|
499
499
|
(media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
|
500
500
|
){
|
501
501
|
|
@@ -1003,6 +1003,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
1003
1003
|
if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
|
1004
1004
|
supLoad.prop._supvalue.apply(this, arguments);
|
1005
1005
|
}
|
1006
|
+
$(this).triggerHandler('wsmediareload');
|
1006
1007
|
}
|
1007
1008
|
}
|
1008
1009
|
});
|