webshims-rails 1.11.1 → 1.11.2
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 +41 -20
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +212 -42
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +196 -37
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +17 -6
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +234 -1247
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +234 -1247
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +202 -45
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +202 -45
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +82 -36
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +1689 -997
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +202 -45
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +237 -51
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +51 -11
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +16 -5
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +247 -48
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +17 -5
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +21 -3
- data/vendor/assets/javascripts/webshims/shims/form-datalist.js +35 -6
- data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +6 -8
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +134 -24
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +152 -1205
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +1076 -0
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +47 -20
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +2 -2
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/i18n/{formcfg-de.txt → formcfg-de.js} +3 -0
- data/vendor/assets/javascripts/webshims/shims/i18n/{formcfg-en.txt → formcfg-en.js} +5 -1
- data/vendor/assets/javascripts/webshims/shims/json-storage.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +1 -1
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +62 -13
- data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +610 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +10 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +743 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +1 -755
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +0 -606
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +36 -23
- data/vendor/assets/javascripts/webshims/shims/track.js +82 -36
- metadata +8 -6
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +0 -2196
- data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -1167
@@ -1193,8 +1193,8 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1193
1193
|
kind: 'subtitles',
|
1194
1194
|
label: '',
|
1195
1195
|
language: '',
|
1196
|
+
id: '',
|
1196
1197
|
mode: 'disabled',
|
1197
|
-
readyState: 0,
|
1198
1198
|
oncuechange: null,
|
1199
1199
|
toString: function() {
|
1200
1200
|
return "[object TextTrack]";
|
@@ -1234,7 +1234,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1234
1234
|
webshims.error("cue not part of track");
|
1235
1235
|
return;
|
1236
1236
|
}
|
1237
|
-
}
|
1237
|
+
}/*,
|
1238
1238
|
DISABLED: 'disabled',
|
1239
1239
|
OFF: 'disabled',
|
1240
1240
|
HIDDEN: 'hidden',
|
@@ -1242,7 +1242,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1242
1242
|
ERROR: 3,
|
1243
1243
|
LOADED: 2,
|
1244
1244
|
LOADING: 1,
|
1245
|
-
NONE: 0
|
1245
|
+
NONE: 0*/
|
1246
1246
|
};
|
1247
1247
|
var copyProps = ['kind', 'label', 'srclang'];
|
1248
1248
|
var copyName = {srclang: 'language'};
|
@@ -1311,21 +1311,47 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1311
1311
|
if(!trackData){
|
1312
1312
|
trackData = webshims.data(track, 'trackData');
|
1313
1313
|
}
|
1314
|
+
|
1314
1315
|
if(trackData && !trackData.isTriggering){
|
1315
1316
|
trackData.isTriggering = true;
|
1316
1317
|
setTimeout(function(){
|
1317
|
-
|
1318
|
-
$(track).triggerHandler('checktrackmode');
|
1319
|
-
} else {
|
1320
|
-
$(track).closest('audio, video').triggerHandler('updatetrackdisplay');
|
1321
|
-
}
|
1318
|
+
$(track).closest('audio, video').triggerHandler('updatetrackdisplay');
|
1322
1319
|
trackData.isTriggering = false;
|
1323
1320
|
}, 1);
|
1324
1321
|
}
|
1325
1322
|
};
|
1326
|
-
|
1323
|
+
var isDefaultTrack = (function(){
|
1324
|
+
var defaultKinds = {
|
1325
|
+
subtitles: {
|
1326
|
+
subtitles: 1,
|
1327
|
+
captions: 1
|
1328
|
+
},
|
1329
|
+
descriptions: {descriptions: 1},
|
1330
|
+
chapters: {chapters: 1}
|
1331
|
+
};
|
1332
|
+
defaultKinds.captions = defaultKinds.subtitles;
|
1333
|
+
|
1334
|
+
return function(track){
|
1335
|
+
var kind, firstDefaultTrack;
|
1336
|
+
var isDefault = $.prop(track, 'default');
|
1337
|
+
if(isDefault && (kind = $.prop(track, 'kind')) != 'metadata'){
|
1338
|
+
firstDefaultTrack = $(track)
|
1339
|
+
.parent()
|
1340
|
+
.find('track[default]')
|
1341
|
+
.filter(function(){
|
1342
|
+
return !!(defaultKinds[kind][$.prop(this, 'kind')]);
|
1343
|
+
})[0]
|
1344
|
+
;
|
1345
|
+
if(firstDefaultTrack != track){
|
1346
|
+
isDefault = false;
|
1347
|
+
webshims.error('more than one default track of a specific kind detected. Fall back to default = false');
|
1348
|
+
}
|
1349
|
+
}
|
1350
|
+
return isDefault;
|
1351
|
+
};
|
1352
|
+
})();
|
1327
1353
|
var emptyDiv = $('<div />')[0];
|
1328
|
-
|
1354
|
+
var TextTrackCue = function(startTime, endTime, text){
|
1329
1355
|
if(arguments.length != 3){
|
1330
1356
|
webshims.error("wrong arguments.length for TextTrackCue.constructor");
|
1331
1357
|
}
|
@@ -1334,13 +1360,11 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1334
1360
|
this.endTime = endTime;
|
1335
1361
|
this.text = text;
|
1336
1362
|
|
1337
|
-
this.id = "";
|
1338
|
-
this.pauseOnExit = false;
|
1339
1363
|
|
1340
1364
|
createEventTarget(this);
|
1341
1365
|
};
|
1342
1366
|
|
1343
|
-
|
1367
|
+
TextTrackCue.prototype = {
|
1344
1368
|
|
1345
1369
|
onenter: null,
|
1346
1370
|
onexit: null,
|
@@ -1382,6 +1406,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1382
1406
|
// align: 'middle'
|
1383
1407
|
};
|
1384
1408
|
|
1409
|
+
window.TextTrackCue = TextTrackCue;
|
1385
1410
|
|
1386
1411
|
|
1387
1412
|
|
@@ -1427,23 +1452,20 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1427
1452
|
})();
|
1428
1453
|
|
1429
1454
|
mediaelement.loadTextTrack = function(mediaelem, track, trackData, _default){
|
1430
|
-
var loadEvents = 'play playing
|
1455
|
+
var loadEvents = 'play playing updatetrackdisplay';
|
1431
1456
|
var obj = trackData.track;
|
1432
1457
|
var load = function(){
|
1433
|
-
var
|
1434
|
-
|
1435
|
-
var ajax;
|
1436
|
-
if(obj.mode != 'disabled' && src && $.attr(track, 'src')){
|
1458
|
+
var error, ajax, src;
|
1459
|
+
if(obj.mode != 'disabled' && $.attr(track, 'src') && (src = $.prop(track, 'src'))){
|
1437
1460
|
$(mediaelem).unbind(loadEvents, load);
|
1438
|
-
|
1439
|
-
if(!obj.readyState){
|
1461
|
+
if(!trackData.readyState){
|
1440
1462
|
error = function(){
|
1441
|
-
|
1463
|
+
trackData.readyState = 3;
|
1442
1464
|
obj.cues = null;
|
1443
1465
|
obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = null;
|
1444
1466
|
$(track).triggerHandler('error');
|
1445
1467
|
};
|
1446
|
-
|
1468
|
+
trackData.readyState = 1;
|
1447
1469
|
try {
|
1448
1470
|
obj.cues = mediaelement.createCueList();
|
1449
1471
|
obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = mediaelement.createCueList();
|
@@ -1456,7 +1478,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1456
1478
|
}
|
1457
1479
|
mediaelement.parseCaptions(text, obj, function(cues){
|
1458
1480
|
if(cues && 'length' in cues){
|
1459
|
-
|
1481
|
+
trackData.readyState = 2;
|
1460
1482
|
$(track).triggerHandler('load');
|
1461
1483
|
$(mediaelem).triggerHandler('updatetrackdisplay');
|
1462
1484
|
} else {
|
@@ -1469,20 +1491,18 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1469
1491
|
});
|
1470
1492
|
} catch(er){
|
1471
1493
|
error();
|
1472
|
-
webshims.
|
1494
|
+
webshims.error(er);
|
1473
1495
|
}
|
1474
1496
|
}
|
1475
1497
|
}
|
1476
1498
|
};
|
1477
|
-
|
1499
|
+
trackData.readyState = 0;
|
1478
1500
|
obj.shimActiveCues = null;
|
1479
1501
|
obj._shimActiveCues = null;
|
1480
1502
|
obj.activeCues = null;
|
1481
1503
|
obj.cues = null;
|
1482
1504
|
$(mediaelem).unbind(loadEvents, load);
|
1483
|
-
$(track).unbind('checktrackmode', load);
|
1484
1505
|
$(mediaelem).on(loadEvents, load);
|
1485
|
-
$(track).on('checktrackmode', load);
|
1486
1506
|
if(_default){
|
1487
1507
|
obj.mode = showTracks[obj.kind] ? 'showing' : 'hidden';
|
1488
1508
|
load();
|
@@ -1524,9 +1544,9 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1524
1544
|
});
|
1525
1545
|
});
|
1526
1546
|
}
|
1527
|
-
|
1547
|
+
obj.id = $(track).prop('id');
|
1528
1548
|
trackData = webshims.data(track, 'trackData', {track: obj});
|
1529
|
-
mediaelement.loadTextTrack(mediaelem, track, trackData, (
|
1549
|
+
mediaelement.loadTextTrack(mediaelem, track, trackData, isDefaultTrack(track));
|
1530
1550
|
} else {
|
1531
1551
|
if(supportTrackMod){
|
1532
1552
|
copyProps.forEach(function(copyProp){
|
@@ -1541,7 +1561,12 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1541
1561
|
obj.mode = 'hidden';
|
1542
1562
|
obj.readyState = 2;
|
1543
1563
|
}
|
1564
|
+
if(obj.kind == 'subtitles' && !obj.language){
|
1565
|
+
webshims.error('you must provide a language for track in subtitles state');
|
1566
|
+
}
|
1567
|
+
obj.__wsmode = obj.mode;
|
1544
1568
|
}
|
1569
|
+
|
1545
1570
|
return obj;
|
1546
1571
|
};
|
1547
1572
|
|
@@ -1734,9 +1759,33 @@ modified for webshims
|
|
1734
1759
|
baseData.textTracks = [];
|
1735
1760
|
webshims.defineProperties(baseData.textTracks, {
|
1736
1761
|
onaddtrack: {value: null},
|
1737
|
-
onremovetrack: {value: null}
|
1762
|
+
onremovetrack: {value: null},
|
1763
|
+
onchange: {value: null},
|
1764
|
+
getTrackById: {
|
1765
|
+
value: function(id){
|
1766
|
+
var track = null;
|
1767
|
+
for(var i = 0; i < baseData.textTracks.length; i++){
|
1768
|
+
if(id == baseData.textTracks[i].id){
|
1769
|
+
track = baseData.textTracks[i];
|
1770
|
+
break;
|
1771
|
+
}
|
1772
|
+
}
|
1773
|
+
return track;
|
1774
|
+
}
|
1775
|
+
}
|
1738
1776
|
});
|
1739
1777
|
createEventTarget(baseData.textTracks);
|
1778
|
+
$(mediaelem).on('updatetrackdisplay', function(){
|
1779
|
+
var track;
|
1780
|
+
for(var i = 0; i < baseData.textTracks.length; i++){
|
1781
|
+
track = baseData.textTracks[i];
|
1782
|
+
if(track.__wsmode != track.mode){
|
1783
|
+
track.__wsmode = track.mode;
|
1784
|
+
$([ baseData.textTracks ]).triggerHandler('change');
|
1785
|
+
}
|
1786
|
+
}
|
1787
|
+
});
|
1788
|
+
|
1740
1789
|
}
|
1741
1790
|
return baseData.textTracks;
|
1742
1791
|
};
|
@@ -1791,10 +1840,6 @@ modified for webshims
|
|
1791
1840
|
if(!supportTrackMod){
|
1792
1841
|
trackData.track[name] = $.prop(this, copyProp);
|
1793
1842
|
}
|
1794
|
-
clearTimeout(trackData.changedTrackPropTimer);
|
1795
|
-
trackData.changedTrackPropTimer = setTimeout(function(){
|
1796
|
-
$(track).trigger('updatesubtitlestate');
|
1797
|
-
}, 1);
|
1798
1843
|
}
|
1799
1844
|
});
|
1800
1845
|
});
|
@@ -1831,7 +1876,8 @@ modified for webshims
|
|
1831
1876
|
},
|
1832
1877
|
readyState: {
|
1833
1878
|
get: function(){
|
1834
|
-
|
1879
|
+
|
1880
|
+
return (webshims.data(this, 'trackData') || {readyState: 0}).readyState;
|
1835
1881
|
},
|
1836
1882
|
writeable: false
|
1837
1883
|
},
|
@@ -1949,7 +1995,7 @@ modified for webshims
|
|
1949
1995
|
});
|
1950
1996
|
});
|
1951
1997
|
|
1952
|
-
if(Modernizr.
|
1998
|
+
if(Modernizr.texttrackapi){
|
1953
1999
|
$('video, audio').trigger('trackapichange');
|
1954
2000
|
}
|
1955
2001
|
});
|
@@ -741,8 +741,8 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
741
741
|
kind: 'subtitles',
|
742
742
|
label: '',
|
743
743
|
language: '',
|
744
|
+
id: '',
|
744
745
|
mode: 'disabled',
|
745
|
-
readyState: 0,
|
746
746
|
oncuechange: null,
|
747
747
|
toString: function() {
|
748
748
|
return "[object TextTrack]";
|
@@ -782,7 +782,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
782
782
|
webshims.error("cue not part of track");
|
783
783
|
return;
|
784
784
|
}
|
785
|
-
}
|
785
|
+
}/*,
|
786
786
|
DISABLED: 'disabled',
|
787
787
|
OFF: 'disabled',
|
788
788
|
HIDDEN: 'hidden',
|
@@ -790,7 +790,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
790
790
|
ERROR: 3,
|
791
791
|
LOADED: 2,
|
792
792
|
LOADING: 1,
|
793
|
-
NONE: 0
|
793
|
+
NONE: 0*/
|
794
794
|
};
|
795
795
|
var copyProps = ['kind', 'label', 'srclang'];
|
796
796
|
var copyName = {srclang: 'language'};
|
@@ -859,21 +859,47 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
859
859
|
if(!trackData){
|
860
860
|
trackData = webshims.data(track, 'trackData');
|
861
861
|
}
|
862
|
+
|
862
863
|
if(trackData && !trackData.isTriggering){
|
863
864
|
trackData.isTriggering = true;
|
864
865
|
setTimeout(function(){
|
865
|
-
|
866
|
-
$(track).triggerHandler('checktrackmode');
|
867
|
-
} else {
|
868
|
-
$(track).closest('audio, video').triggerHandler('updatetrackdisplay');
|
869
|
-
}
|
866
|
+
$(track).closest('audio, video').triggerHandler('updatetrackdisplay');
|
870
867
|
trackData.isTriggering = false;
|
871
868
|
}, 1);
|
872
869
|
}
|
873
870
|
};
|
874
|
-
|
871
|
+
var isDefaultTrack = (function(){
|
872
|
+
var defaultKinds = {
|
873
|
+
subtitles: {
|
874
|
+
subtitles: 1,
|
875
|
+
captions: 1
|
876
|
+
},
|
877
|
+
descriptions: {descriptions: 1},
|
878
|
+
chapters: {chapters: 1}
|
879
|
+
};
|
880
|
+
defaultKinds.captions = defaultKinds.subtitles;
|
881
|
+
|
882
|
+
return function(track){
|
883
|
+
var kind, firstDefaultTrack;
|
884
|
+
var isDefault = $.prop(track, 'default');
|
885
|
+
if(isDefault && (kind = $.prop(track, 'kind')) != 'metadata'){
|
886
|
+
firstDefaultTrack = $(track)
|
887
|
+
.parent()
|
888
|
+
.find('track[default]')
|
889
|
+
.filter(function(){
|
890
|
+
return !!(defaultKinds[kind][$.prop(this, 'kind')]);
|
891
|
+
})[0]
|
892
|
+
;
|
893
|
+
if(firstDefaultTrack != track){
|
894
|
+
isDefault = false;
|
895
|
+
webshims.error('more than one default track of a specific kind detected. Fall back to default = false');
|
896
|
+
}
|
897
|
+
}
|
898
|
+
return isDefault;
|
899
|
+
};
|
900
|
+
})();
|
875
901
|
var emptyDiv = $('<div />')[0];
|
876
|
-
|
902
|
+
var TextTrackCue = function(startTime, endTime, text){
|
877
903
|
if(arguments.length != 3){
|
878
904
|
webshims.error("wrong arguments.length for TextTrackCue.constructor");
|
879
905
|
}
|
@@ -882,13 +908,11 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
882
908
|
this.endTime = endTime;
|
883
909
|
this.text = text;
|
884
910
|
|
885
|
-
this.id = "";
|
886
|
-
this.pauseOnExit = false;
|
887
911
|
|
888
912
|
createEventTarget(this);
|
889
913
|
};
|
890
914
|
|
891
|
-
|
915
|
+
TextTrackCue.prototype = {
|
892
916
|
|
893
917
|
onenter: null,
|
894
918
|
onexit: null,
|
@@ -930,6 +954,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
930
954
|
// align: 'middle'
|
931
955
|
};
|
932
956
|
|
957
|
+
window.TextTrackCue = TextTrackCue;
|
933
958
|
|
934
959
|
|
935
960
|
|
@@ -975,23 +1000,20 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
975
1000
|
})();
|
976
1001
|
|
977
1002
|
mediaelement.loadTextTrack = function(mediaelem, track, trackData, _default){
|
978
|
-
var loadEvents = 'play playing
|
1003
|
+
var loadEvents = 'play playing updatetrackdisplay';
|
979
1004
|
var obj = trackData.track;
|
980
1005
|
var load = function(){
|
981
|
-
var
|
982
|
-
|
983
|
-
var ajax;
|
984
|
-
if(obj.mode != 'disabled' && src && $.attr(track, 'src')){
|
1006
|
+
var error, ajax, src;
|
1007
|
+
if(obj.mode != 'disabled' && $.attr(track, 'src') && (src = $.prop(track, 'src'))){
|
985
1008
|
$(mediaelem).unbind(loadEvents, load);
|
986
|
-
|
987
|
-
if(!obj.readyState){
|
1009
|
+
if(!trackData.readyState){
|
988
1010
|
error = function(){
|
989
|
-
|
1011
|
+
trackData.readyState = 3;
|
990
1012
|
obj.cues = null;
|
991
1013
|
obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = null;
|
992
1014
|
$(track).triggerHandler('error');
|
993
1015
|
};
|
994
|
-
|
1016
|
+
trackData.readyState = 1;
|
995
1017
|
try {
|
996
1018
|
obj.cues = mediaelement.createCueList();
|
997
1019
|
obj.activeCues = obj.shimActiveCues = obj._shimActiveCues = mediaelement.createCueList();
|
@@ -1004,7 +1026,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1004
1026
|
}
|
1005
1027
|
mediaelement.parseCaptions(text, obj, function(cues){
|
1006
1028
|
if(cues && 'length' in cues){
|
1007
|
-
|
1029
|
+
trackData.readyState = 2;
|
1008
1030
|
$(track).triggerHandler('load');
|
1009
1031
|
$(mediaelem).triggerHandler('updatetrackdisplay');
|
1010
1032
|
} else {
|
@@ -1017,20 +1039,18 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1017
1039
|
});
|
1018
1040
|
} catch(er){
|
1019
1041
|
error();
|
1020
|
-
webshims.
|
1042
|
+
webshims.error(er);
|
1021
1043
|
}
|
1022
1044
|
}
|
1023
1045
|
}
|
1024
1046
|
};
|
1025
|
-
|
1047
|
+
trackData.readyState = 0;
|
1026
1048
|
obj.shimActiveCues = null;
|
1027
1049
|
obj._shimActiveCues = null;
|
1028
1050
|
obj.activeCues = null;
|
1029
1051
|
obj.cues = null;
|
1030
1052
|
$(mediaelem).unbind(loadEvents, load);
|
1031
|
-
$(track).unbind('checktrackmode', load);
|
1032
1053
|
$(mediaelem).on(loadEvents, load);
|
1033
|
-
$(track).on('checktrackmode', load);
|
1034
1054
|
if(_default){
|
1035
1055
|
obj.mode = showTracks[obj.kind] ? 'showing' : 'hidden';
|
1036
1056
|
load();
|
@@ -1072,9 +1092,9 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1072
1092
|
});
|
1073
1093
|
});
|
1074
1094
|
}
|
1075
|
-
|
1095
|
+
obj.id = $(track).prop('id');
|
1076
1096
|
trackData = webshims.data(track, 'trackData', {track: obj});
|
1077
|
-
mediaelement.loadTextTrack(mediaelem, track, trackData, (
|
1097
|
+
mediaelement.loadTextTrack(mediaelem, track, trackData, isDefaultTrack(track));
|
1078
1098
|
} else {
|
1079
1099
|
if(supportTrackMod){
|
1080
1100
|
copyProps.forEach(function(copyProp){
|
@@ -1089,7 +1109,12 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
1089
1109
|
obj.mode = 'hidden';
|
1090
1110
|
obj.readyState = 2;
|
1091
1111
|
}
|
1112
|
+
if(obj.kind == 'subtitles' && !obj.language){
|
1113
|
+
webshims.error('you must provide a language for track in subtitles state');
|
1114
|
+
}
|
1115
|
+
obj.__wsmode = obj.mode;
|
1092
1116
|
}
|
1117
|
+
|
1093
1118
|
return obj;
|
1094
1119
|
};
|
1095
1120
|
|
@@ -1282,9 +1307,33 @@ modified for webshims
|
|
1282
1307
|
baseData.textTracks = [];
|
1283
1308
|
webshims.defineProperties(baseData.textTracks, {
|
1284
1309
|
onaddtrack: {value: null},
|
1285
|
-
onremovetrack: {value: null}
|
1310
|
+
onremovetrack: {value: null},
|
1311
|
+
onchange: {value: null},
|
1312
|
+
getTrackById: {
|
1313
|
+
value: function(id){
|
1314
|
+
var track = null;
|
1315
|
+
for(var i = 0; i < baseData.textTracks.length; i++){
|
1316
|
+
if(id == baseData.textTracks[i].id){
|
1317
|
+
track = baseData.textTracks[i];
|
1318
|
+
break;
|
1319
|
+
}
|
1320
|
+
}
|
1321
|
+
return track;
|
1322
|
+
}
|
1323
|
+
}
|
1286
1324
|
});
|
1287
1325
|
createEventTarget(baseData.textTracks);
|
1326
|
+
$(mediaelem).on('updatetrackdisplay', function(){
|
1327
|
+
var track;
|
1328
|
+
for(var i = 0; i < baseData.textTracks.length; i++){
|
1329
|
+
track = baseData.textTracks[i];
|
1330
|
+
if(track.__wsmode != track.mode){
|
1331
|
+
track.__wsmode = track.mode;
|
1332
|
+
$([ baseData.textTracks ]).triggerHandler('change');
|
1333
|
+
}
|
1334
|
+
}
|
1335
|
+
});
|
1336
|
+
|
1288
1337
|
}
|
1289
1338
|
return baseData.textTracks;
|
1290
1339
|
};
|
@@ -1339,10 +1388,6 @@ modified for webshims
|
|
1339
1388
|
if(!supportTrackMod){
|
1340
1389
|
trackData.track[name] = $.prop(this, copyProp);
|
1341
1390
|
}
|
1342
|
-
clearTimeout(trackData.changedTrackPropTimer);
|
1343
|
-
trackData.changedTrackPropTimer = setTimeout(function(){
|
1344
|
-
$(track).trigger('updatesubtitlestate');
|
1345
|
-
}, 1);
|
1346
1391
|
}
|
1347
1392
|
});
|
1348
1393
|
});
|
@@ -1379,7 +1424,8 @@ modified for webshims
|
|
1379
1424
|
},
|
1380
1425
|
readyState: {
|
1381
1426
|
get: function(){
|
1382
|
-
|
1427
|
+
|
1428
|
+
return (webshims.data(this, 'trackData') || {readyState: 0}).readyState;
|
1383
1429
|
},
|
1384
1430
|
writeable: false
|
1385
1431
|
},
|
@@ -1497,7 +1543,7 @@ modified for webshims
|
|
1497
1543
|
});
|
1498
1544
|
});
|
1499
1545
|
|
1500
|
-
if(Modernizr.
|
1546
|
+
if(Modernizr.texttrackapi){
|
1501
1547
|
$('video, audio').trigger('trackapichange');
|
1502
1548
|
}
|
1503
1549
|
});
|