webshims-rails 1.14.6 → 1.15.2
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/polyfiller.js +145 -139
- data/vendor/assets/javascripts/webshims/shims/canvas-blob.js +97 -0
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +13 -15
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +29 -28
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +22 -10
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +22 -10
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +28 -43
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +41 -44
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +40 -42
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +98 -71
- data/vendor/assets/javascripts/webshims/shims/combos/22.js +9 -9
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +13 -1
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +141 -51
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +66 -12
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +27 -41
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +27 -41
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +27 -41
- data/vendor/assets/javascripts/webshims/shims/combos/34.js +36 -36
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +27 -27
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +40 -42
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +40 -42
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +29 -28
- data/vendor/assets/javascripts/webshims/shims/combos/98.js +4 -2
- data/vendor/assets/javascripts/webshims/shims/combos/99.js +4 -2
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +27 -27
- data/vendor/assets/javascripts/webshims/shims/es6.js +23 -29
- data/vendor/assets/javascripts/webshims/shims/{filereader.js → filereader-xhr.js} +66 -12
- data/vendor/assets/javascripts/webshims/shims/form-core.js +0 -14
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +1 -2
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +18 -5
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +15 -14
- data/vendor/assets/javascripts/webshims/shims/geolocation.js +41 -50
- data/vendor/assets/javascripts/webshims/shims/jme/controls.css +4 -4
- data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +2 -1
- data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols.js +4 -2
- data/vendor/assets/javascripts/webshims/shims/mediacapture-picker.js +42 -0
- data/vendor/assets/javascripts/webshims/shims/mediacapture.js +159 -0
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +13 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +48 -12
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +20 -8
- data/vendor/assets/javascripts/webshims/shims/{combos/26.js → moxie/js/moxie-html4.js} +2121 -1257
- data/vendor/assets/javascripts/webshims/shims/moxie/js/{moxie.js → moxie-swf.js} +1125 -1741
- data/vendor/assets/javascripts/webshims/shims/sticky.js +585 -0
- data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +20 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +23 -0
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +74 -34
- data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +78 -31
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +78 -31
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- data/vendor/assets/javascripts/webshims/shims/track-ui.js +214 -111
- data/vendor/assets/javascripts/webshims/shims/track.js +9 -9
- data/vendor/assets/javascripts/webshims/shims/usermedia-core.js +27 -0
- data/vendor/assets/javascripts/webshims/shims/usermedia-shim.js +34 -37
- metadata +9 -8
- data/vendor/assets/javascripts/webshims/shims/jajax.js +0 -1262
- 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
Binary file
|
@@ -48,7 +48,10 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
|
|
48
48
|
var usesNativeTrack = function(){
|
49
49
|
return !options.override && support.texttrackapi;
|
50
50
|
};
|
51
|
-
|
51
|
+
var requestAnimationFrame = window.cancelAnimationFrame && window.requestAnimationFrame || function(fn){
|
52
|
+
setTimeout(fn, 17);
|
53
|
+
};
|
54
|
+
var cancelAnimationFrame = window.cancelAnimationFrame || window.clearTimeout;
|
52
55
|
var trackDisplay = {
|
53
56
|
update: function(baseData, media){
|
54
57
|
if(!baseData.activeCues.length){
|
@@ -169,20 +172,42 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
|
|
169
172
|
return $.extend([], cueListProto);
|
170
173
|
};
|
171
174
|
}
|
175
|
+
|
176
|
+
function triggerCueEvent(cue, type, baseData, media, trackIndex){
|
177
|
+
var trackElem, compareTrack;
|
178
|
+
var cueChange = $.Event('cuechange');
|
179
|
+
if(!baseData.trackElements){
|
180
|
+
baseData.trackElements = media[0].getElementsByTagName('track');
|
181
|
+
}
|
182
|
+
|
183
|
+
trackElem = baseData.trackElements[trackIndex];
|
184
|
+
|
185
|
+
if(trackElem){
|
186
|
+
compareTrack = (webshims.data(trackElem, 'trackData') || {track: $.prop(trackElem, 'track')}).track;
|
187
|
+
if(compareTrack != cue.track){
|
188
|
+
trackElem = null;
|
189
|
+
}
|
190
|
+
}
|
191
|
+
$.event.trigger(cueChange, null, cue.track, true);
|
192
|
+
|
193
|
+
if(trackElem){
|
194
|
+
$.event.trigger(cueChange, null, trackElem, true);
|
195
|
+
}
|
196
|
+
|
197
|
+
$.event.trigger(type, null, cue, true);
|
198
|
+
}
|
172
199
|
|
173
|
-
mediaelement.getActiveCue = function(track, media, time, baseData){
|
200
|
+
mediaelement.getActiveCue = function(track, media, time, baseData, trackIndex){
|
174
201
|
if(!track._lastFoundCue){
|
175
202
|
track._lastFoundCue = {index: 0, time: 0};
|
176
203
|
}
|
177
204
|
|
178
|
-
if(support.texttrackapi && !options.override
|
205
|
+
if(!track._shimActiveCues && support.texttrackapi && !options.override){
|
179
206
|
track._shimActiveCues = mediaelement.createCueList();
|
180
207
|
}
|
181
208
|
|
182
209
|
var i = 0;
|
183
|
-
var len;
|
184
|
-
var cue;
|
185
|
-
|
210
|
+
var len, cue, delay;
|
186
211
|
for(; i < track.shimActiveCues.length; i++){
|
187
212
|
cue = track.shimActiveCues[i];
|
188
213
|
if(cue.startTime > time || cue.endTime < time){
|
@@ -191,10 +216,20 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
|
|
191
216
|
if(cue.pauseOnExit){
|
192
217
|
$(media).pause();
|
193
218
|
}
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
219
|
+
|
220
|
+
|
221
|
+
triggerCueEvent(cue, 'exit', baseData, media, trackIndex);
|
222
|
+
|
223
|
+
|
224
|
+
} else {
|
225
|
+
delay = cue.endTime - time;
|
226
|
+
if(baseData.nextUpdateDelay > delay){
|
227
|
+
baseData.nextUpdateDelay = delay;
|
228
|
+
baseData.nextEvent = cue.endTime;
|
229
|
+
}
|
230
|
+
if(track.mode == 'showing' && showTracks[track.kind] && $.inArray(cue, baseData.activeCues) == -1){
|
231
|
+
baseData.activeCues.push(cue);
|
232
|
+
}
|
198
233
|
}
|
199
234
|
}
|
200
235
|
|
@@ -210,20 +245,182 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
|
|
210
245
|
if(track.mode == 'showing' && showTracks[track.kind]){
|
211
246
|
baseData.activeCues.push(cue);
|
212
247
|
}
|
213
|
-
|
214
|
-
|
215
|
-
|
248
|
+
|
249
|
+
triggerCueEvent(cue, 'enter', baseData, media, trackIndex);
|
250
|
+
|
216
251
|
track._lastFoundCue.time = time;
|
217
252
|
track._lastFoundCue.index = i;
|
218
|
-
|
253
|
+
|
254
|
+
delay = cue.endTime - time;
|
255
|
+
if(baseData.nextUpdateDelay > delay){
|
256
|
+
baseData.nextUpdateDelay = delay;
|
257
|
+
baseData.nextEvent = cue.endTime;
|
258
|
+
}
|
219
259
|
|
220
260
|
}
|
221
261
|
if(cue.startTime > time){
|
262
|
+
delay = cue.startTime - time;
|
263
|
+
if(baseData.nextUpdateDelay > delay){
|
264
|
+
baseData.nextUpdateDelay = delay;
|
265
|
+
baseData.nextEvent = cue.startTime;
|
266
|
+
}
|
222
267
|
break;
|
223
268
|
}
|
224
269
|
}
|
225
270
|
};
|
226
|
-
|
271
|
+
var filterTrackImplementation = function(){
|
272
|
+
return webshims.implement(this, 'trackui');
|
273
|
+
};
|
274
|
+
var implementTrackUi = function(){
|
275
|
+
var baseData, trackList, updateTimer, updateTimer2, lastDelay, lastTime, invalidTracksTimer;
|
276
|
+
var treshHold = 0.27;
|
277
|
+
var elem = $(this);
|
278
|
+
var recheckI = 0;
|
279
|
+
var recheckId;
|
280
|
+
var reCheck = function(){
|
281
|
+
recheckI++;
|
282
|
+
|
283
|
+
//if recheckI is over 5 video might be paused, stalled or waiting,
|
284
|
+
//in this case abort and wait for the next play, playing or timeupdate event
|
285
|
+
if(recheckI < 9){
|
286
|
+
if(elem.prop('currentTime') > baseData.nextEvent){
|
287
|
+
recheckI = undefined;
|
288
|
+
getDisplayCues();
|
289
|
+
} else {
|
290
|
+
recheckId = requestAnimationFrame(reCheck);
|
291
|
+
}
|
292
|
+
} else {
|
293
|
+
recheckI = undefined;
|
294
|
+
}
|
295
|
+
};
|
296
|
+
var getDisplayCues = function(e){
|
297
|
+
var track, time;
|
298
|
+
if(!trackList || !baseData){
|
299
|
+
trackList = elem.prop('textTracks');
|
300
|
+
baseData = webshims.data(elem[0], 'mediaelementBase') || webshims.data(elem[0], 'mediaelementBase', {});
|
301
|
+
|
302
|
+
if(!baseData.displayedActiveCues){
|
303
|
+
baseData.displayedActiveCues = [];
|
304
|
+
}
|
305
|
+
}
|
306
|
+
|
307
|
+
if (!trackList){return;}
|
308
|
+
time = elem.prop('currentTime');
|
309
|
+
|
310
|
+
if(!time && time !== 0){return;}
|
311
|
+
|
312
|
+
if(baseData.nextEvent && e && e.type == 'timeupdate' && time >= lastTime && baseData.nextEvent - time > treshHold && time - lastTime < 9){
|
313
|
+
return;
|
314
|
+
}
|
315
|
+
|
316
|
+
lastTime = time;
|
317
|
+
lastDelay = baseData.nextUpdateDelay;
|
318
|
+
baseData.nextUpdateDelay = Number.MAX_VALUE;
|
319
|
+
baseData.activeCues = [];
|
320
|
+
for(var i = 0, len = trackList.length; i < len; i++){
|
321
|
+
track = trackList[i];
|
322
|
+
if(track.mode != 'disabled' && track.cues && track.cues.length){
|
323
|
+
mediaelement.getActiveCue(track, elem, time, baseData, i);
|
324
|
+
}
|
325
|
+
}
|
326
|
+
trackDisplay.update(baseData, elem);
|
327
|
+
|
328
|
+
clearTimeout(updateTimer);
|
329
|
+
|
330
|
+
if(baseData.nextUpdateDelay <= treshHold && (e || lastDelay != baseData.nextUpdateDelay) && baseData.nextUpdateDelay > 0){
|
331
|
+
|
332
|
+
lastDelay = baseData.nextUpdateDelay;
|
333
|
+
|
334
|
+
clearTimeout(updateTimer2);
|
335
|
+
|
336
|
+
if(recheckId){
|
337
|
+
cancelAnimationFrame(recheckId);
|
338
|
+
}
|
339
|
+
recheckI = 0;
|
340
|
+
updateTimer2 = setTimeout(reCheck, (baseData.nextUpdateDelay * 1000) + 9);
|
341
|
+
} else if(baseData.nextUpdateDelay >= Number.MAX_VALUE){
|
342
|
+
baseData.nextEvent = time + 2;
|
343
|
+
}
|
344
|
+
};
|
345
|
+
var invalidateTrackElems = function(){
|
346
|
+
if(baseData && baseData.trackElements){
|
347
|
+
delete baseData.trackElements;
|
348
|
+
}
|
349
|
+
};
|
350
|
+
var onUpdatCues = function(e){
|
351
|
+
if(baseData && e && (e.type == 'addtrack' || e.type == 'removetrack')){
|
352
|
+
clearTimeout(invalidTracksTimer);
|
353
|
+
invalidTracksTimer = setTimeout(invalidateTrackElems, 39);
|
354
|
+
}
|
355
|
+
clearTimeout(updateTimer);
|
356
|
+
updateTimer = setTimeout(getDisplayCues, 40);
|
357
|
+
};
|
358
|
+
var addTrackView = function(){
|
359
|
+
if(!trackList) {
|
360
|
+
if(baseData && 'blockTrackListUpdate' in baseData){
|
361
|
+
baseData.blockTrackListUpdate = true;
|
362
|
+
}
|
363
|
+
trackList = elem.prop('textTracks');
|
364
|
+
if(baseData && baseData.blockTrackListUpdate){
|
365
|
+
baseData.blockTrackListUpdate = false;
|
366
|
+
}
|
367
|
+
}
|
368
|
+
//as soon as change on trackList is implemented in all browsers we do not need to have 'updatetrackdisplay' anymore
|
369
|
+
$( [trackList] )
|
370
|
+
.off('.trackview')
|
371
|
+
.on('change.trackview addtrack.trackview removetrack.trackview', onUpdatCues)
|
372
|
+
;
|
373
|
+
elem
|
374
|
+
.off('.trackview')
|
375
|
+
.on('emptied.trackview', invalidateTrackElems)
|
376
|
+
.on('play.trackview playing.trackview updatetrackdisplay.trackview seeked.trackview', onUpdatCues)
|
377
|
+
.on('timeupdate.trackview', getDisplayCues)
|
378
|
+
;
|
379
|
+
};
|
380
|
+
|
381
|
+
elem.on('remove', function(e){
|
382
|
+
if(!e.originalEvent && baseData && baseData.trackDisplay){
|
383
|
+
setTimeout(function(){
|
384
|
+
baseData.trackDisplay.remove();
|
385
|
+
}, 4);
|
386
|
+
}
|
387
|
+
});
|
388
|
+
|
389
|
+
if(!usesNativeTrack()){
|
390
|
+
addTrackView();
|
391
|
+
} else {
|
392
|
+
|
393
|
+
if(elem.hasClass('nonnative-api-active')){
|
394
|
+
addTrackView();
|
395
|
+
}
|
396
|
+
elem
|
397
|
+
.on('mediaelementapichange trackapichange', function(){
|
398
|
+
|
399
|
+
if(!usesNativeTrack() || elem.hasClass('nonnative-api-active')){
|
400
|
+
addTrackView();
|
401
|
+
} else {
|
402
|
+
clearTimeout(updateTimer);
|
403
|
+
clearTimeout(updateTimer2);
|
404
|
+
if(recheckId){
|
405
|
+
cancelAnimationFrame(recheckId);
|
406
|
+
}
|
407
|
+
|
408
|
+
trackList = elem.prop('textTracks');
|
409
|
+
baseData = webshims.data(elem[0], 'mediaelementBase') || webshims.data(elem[0], 'mediaelementBase', {});
|
410
|
+
$.each(trackList, function(i, track){
|
411
|
+
if(track._shimActiveCues){
|
412
|
+
delete track._shimActiveCues;
|
413
|
+
}
|
414
|
+
});
|
415
|
+
$( [trackList] ).off('.trackview');
|
416
|
+
trackDisplay.hide(baseData);
|
417
|
+
elem.off('.trackview');
|
418
|
+
}
|
419
|
+
})
|
420
|
+
;
|
421
|
+
}
|
422
|
+
};
|
423
|
+
|
227
424
|
if(usesNativeTrack()){
|
228
425
|
(function(){
|
229
426
|
var block;
|
@@ -265,102 +462,8 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
|
|
265
462
|
webshims.addReady(function(context, insertedElement){
|
266
463
|
$('video, audio', context)
|
267
464
|
.add(insertedElement.filter('video, audio'))
|
268
|
-
.filter(
|
269
|
-
|
270
|
-
})
|
271
|
-
.each(function(){
|
272
|
-
var baseData, trackList, updateTimer, updateTimer2;
|
273
|
-
|
274
|
-
var elem = $(this);
|
275
|
-
var getDisplayCues = function(e){
|
276
|
-
var track;
|
277
|
-
var time;
|
278
|
-
|
279
|
-
if(!trackList || !baseData){
|
280
|
-
trackList = elem.prop('textTracks');
|
281
|
-
baseData = webshims.data(elem[0], 'mediaelementBase') || webshims.data(elem[0], 'mediaelementBase', {});
|
282
|
-
if(!baseData.displayedActiveCues){
|
283
|
-
baseData.displayedActiveCues = [];
|
284
|
-
}
|
285
|
-
}
|
286
|
-
|
287
|
-
if (!trackList){return;}
|
288
|
-
time = elem.prop('currentTime');
|
289
|
-
|
290
|
-
if(!time && time !== 0){return;}
|
291
|
-
baseData.activeCues = [];
|
292
|
-
for(var i = 0, len = trackList.length; i < len; i++){
|
293
|
-
track = trackList[i];
|
294
|
-
if(track.mode != 'disabled' && track.cues && track.cues.length){
|
295
|
-
mediaelement.getActiveCue(track, elem, time, baseData);
|
296
|
-
}
|
297
|
-
}
|
298
|
-
|
299
|
-
trackDisplay.update(baseData, elem);
|
300
|
-
|
301
|
-
};
|
302
|
-
var onUpdate = function(e){
|
303
|
-
clearTimeout(updateTimer);
|
304
|
-
if(e){
|
305
|
-
if(e.type == 'timeupdate'){
|
306
|
-
getDisplayCues();
|
307
|
-
}
|
308
|
-
updateTimer2 = setTimeout(onUpdate, 90);
|
309
|
-
} else {
|
310
|
-
updateTimer = setTimeout(getDisplayCues, 9);
|
311
|
-
}
|
312
|
-
};
|
313
|
-
var addTrackView = function(){
|
314
|
-
if(!trackList) {
|
315
|
-
trackList = elem.prop('textTracks');
|
316
|
-
}
|
317
|
-
//as soon as change on trackList is implemented in all browsers we do not need to have 'updatetrackdisplay' anymore
|
318
|
-
$( [trackList] ).on('change', onUpdate);
|
319
|
-
elem
|
320
|
-
.off('.trackview')
|
321
|
-
.on('play.trackview timeupdate.trackview updatetrackdisplay.trackview', onUpdate)
|
322
|
-
;
|
323
|
-
};
|
324
|
-
|
325
|
-
elem.on('remove', function(e){
|
326
|
-
if(!e.originalEvent && baseData && baseData.trackDisplay){
|
327
|
-
setTimeout(function(){
|
328
|
-
baseData.trackDisplay.remove();
|
329
|
-
}, 4);
|
330
|
-
}
|
331
|
-
});
|
332
|
-
|
333
|
-
if(!usesNativeTrack()){
|
334
|
-
addTrackView();
|
335
|
-
} else {
|
336
|
-
|
337
|
-
if(elem.hasClass('nonnative-api-active')){
|
338
|
-
addTrackView();
|
339
|
-
}
|
340
|
-
elem
|
341
|
-
.on('mediaelementapichange trackapichange', function(){
|
342
|
-
|
343
|
-
if(!usesNativeTrack() || elem.hasClass('nonnative-api-active')){
|
344
|
-
addTrackView();
|
345
|
-
} else {
|
346
|
-
clearTimeout(updateTimer);
|
347
|
-
clearTimeout(updateTimer2);
|
348
|
-
|
349
|
-
trackList = elem.prop('textTracks');
|
350
|
-
baseData = webshims.data(elem[0], 'mediaelementBase') || webshims.data(elem[0], 'mediaelementBase', {});
|
351
|
-
|
352
|
-
$.each(trackList, function(i, track){
|
353
|
-
if(track._shimActiveCues){
|
354
|
-
delete track._shimActiveCues;
|
355
|
-
}
|
356
|
-
});
|
357
|
-
trackDisplay.hide(baseData);
|
358
|
-
elem.off('.trackview');
|
359
|
-
}
|
360
|
-
})
|
361
|
-
;
|
362
|
-
}
|
363
|
-
})
|
465
|
+
.filter(filterTrackImplementation)
|
466
|
+
.each(implementTrackUi)
|
364
467
|
;
|
365
468
|
});
|
366
469
|
});
|
@@ -66,8 +66,12 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
66
66
|
var lastCue = this.cues[this.cues.length-1];
|
67
67
|
if(lastCue && lastCue.startTime > cue.startTime){
|
68
68
|
webshims.error("cue startTime higher than previous cue's startTime");
|
69
|
+
return;
|
69
70
|
}
|
70
71
|
}
|
72
|
+
if(cue.startTime >= cue.endTime ){
|
73
|
+
webshim.error('startTime >= endTime of cue: '+ cue.text);
|
74
|
+
}
|
71
75
|
if(cue.track && cue.track.removeCue){
|
72
76
|
cue.track.removeCue(cue);
|
73
77
|
}
|
@@ -159,6 +163,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
159
163
|
for(i = 0, len = added.length; i < len; i++){
|
160
164
|
$([trackList]).triggerHandler($.Event({type: 'addtrack', track: added[i]}));
|
161
165
|
}
|
166
|
+
//todo: remove
|
162
167
|
if(baseData.scriptedTextTracks || removed.length){
|
163
168
|
$(this).triggerHandler('updatetrackdisplay');
|
164
169
|
}
|
@@ -175,7 +180,7 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
175
180
|
setTimeout(function(){
|
176
181
|
$(track).closest('audio, video').triggerHandler('updatetrackdisplay');
|
177
182
|
trackData.isTriggering = false;
|
178
|
-
},
|
183
|
+
}, 9);
|
179
184
|
}
|
180
185
|
};
|
181
186
|
var isDefaultTrack = (function(){
|
@@ -368,15 +373,10 @@ webshims.register('track', function($, webshims, window, document, undefined){
|
|
368
373
|
error: error
|
369
374
|
});
|
370
375
|
};
|
371
|
-
if(
|
372
|
-
|
373
|
-
setTimeout(createAjax, loadingTracks * 2);
|
374
|
-
} else {
|
375
|
-
createAjax();
|
376
|
-
}
|
376
|
+
if(isDisabled){
|
377
|
+
setTimeout(createAjax, loadingTracks * 2);
|
377
378
|
} else {
|
378
|
-
|
379
|
-
webshims.loader.loadList(['jajax']);
|
379
|
+
createAjax();
|
380
380
|
}
|
381
381
|
} catch(er){
|
382
382
|
error();
|
@@ -5,6 +5,7 @@ webshim.register('usermedia-core', function($, webshim, window, document, undefi
|
|
5
5
|
var addUnPrefixed = function(){
|
6
6
|
navigator.getUserMedia = navigator[webshim.prefixed('getUserMedia', navigator)];
|
7
7
|
};
|
8
|
+
|
8
9
|
if(srcObjectName != 'srcObject'){
|
9
10
|
var hasURL = !!(window.URL && URL.createObjectURL);
|
10
11
|
webshim.defineNodeNamesProperty(['audio', 'video'], 'srcObject', {
|
@@ -23,6 +24,32 @@ webshim.register('usermedia-core', function($, webshim, window, document, undefi
|
|
23
24
|
});
|
24
25
|
}
|
25
26
|
|
27
|
+
(function(){
|
28
|
+
var streams = {};
|
29
|
+
var _nativeCreateObjectURL = URL.createObjectURL;
|
30
|
+
var _nativeRevokeObjectURL = URL.revokeObjectURL;
|
31
|
+
|
32
|
+
URL.createObjectURL = function(stream){
|
33
|
+
|
34
|
+
var url = stream;
|
35
|
+
if(_nativeCreateObjectURL && !stream._wsStreamId){
|
36
|
+
url = _nativeCreateObjectURL.apply(this, arguments);
|
37
|
+
} else if(stream._wsStreamId) {
|
38
|
+
url = stream._wsStreamId;
|
39
|
+
streams[url] = stream;
|
40
|
+
}
|
41
|
+
return url;
|
42
|
+
};
|
43
|
+
|
44
|
+
URL.revokeObjectURL = function(url){
|
45
|
+
if(streams[url]){
|
46
|
+
delete streams[url];
|
47
|
+
} else if (_nativeRevokeObjectURL){
|
48
|
+
return _nativeRevokeObjectURL.apply(this, arguments);
|
49
|
+
}
|
50
|
+
};
|
51
|
+
})();
|
52
|
+
|
26
53
|
|
27
54
|
webshim.ready(webshim.modules["usermedia-shim"].loaded ? 'usermedia-api' : 'usermedia-shim', addUnPrefixed);
|
28
55
|
});
|