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
@@ -92,52 +92,46 @@
|
|
92
92
|
}
|
93
93
|
return;
|
94
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
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
if($.ajax){
|
136
|
-
createAjax();
|
137
|
-
} else {
|
138
|
-
webshims.ready('jajax', createAjax);
|
139
|
-
webshims.loader.loadList(['jajax']);
|
140
|
-
}
|
95
|
+
|
96
|
+
$.ajax({
|
97
|
+
url: 'http://freegeoip.net/json/',
|
98
|
+
dataType: 'jsonp',
|
99
|
+
cache: true,
|
100
|
+
jsonp: 'callback',
|
101
|
+
success: function(data){
|
102
|
+
locationAPIs--;
|
103
|
+
if(!data){return;}
|
104
|
+
pos = pos || {
|
105
|
+
coords: {
|
106
|
+
latitude: data.latitude,
|
107
|
+
longitude: data.longitude,
|
108
|
+
altitude: null,
|
109
|
+
accuracy: 43000,
|
110
|
+
altitudeAccuracy: null,
|
111
|
+
heading: parseInt('NaN', 10),
|
112
|
+
velocity: null
|
113
|
+
},
|
114
|
+
//extension similiar to FF implementation
|
115
|
+
address: {
|
116
|
+
city: data.city,
|
117
|
+
country: data.country_name,
|
118
|
+
countryCode: data.country_code,
|
119
|
+
county: "",
|
120
|
+
postalCode: data.zipcode,
|
121
|
+
premises: "",
|
122
|
+
region: data.region_name,
|
123
|
+
street: "",
|
124
|
+
streetNumber: ""
|
125
|
+
}
|
126
|
+
};
|
127
|
+
endCallback();
|
128
|
+
},
|
129
|
+
error: function(){
|
130
|
+
locationAPIs--;
|
131
|
+
endCallback();
|
132
|
+
}
|
133
|
+
});
|
134
|
+
|
141
135
|
clearTimeout(googleTimer);
|
142
136
|
if (!window.google || !window.google.loader) {
|
143
137
|
googleTimer = setTimeout(function(){
|
@@ -179,9 +173,6 @@
|
|
179
173
|
};
|
180
174
|
return api;
|
181
175
|
})());
|
182
|
-
|
183
|
-
webshims.ready('WINDOWLOAD', function(){
|
184
|
-
webshims.loader.loadList(['jajax']);
|
185
|
-
});
|
176
|
+
|
186
177
|
webshims.isReady('geolocation', true);
|
187
178
|
})(webshims.$);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* thx to http://icomoon.io */
|
2
|
-
.mediaplayer[data-state="waiting"] > .jme-media-overlay, .mediaplayer .fullscreen, .mediaplayer .fullscreen.state-exitfullscreen, .mediaplayer .mediaconfigmenu, .mediaplayer.initial-state > .jme-media-overlay, .mediaplayer button.play-pause, .mediaplayer button.play-pause.state-playing, .mediaplayer .mute-unmute, .mediaplayer[data-volume="medium"] .mute-unmute, .mediaplayer[data-volume="low"] .mute-unmute, .mediaplayer[data-volume="no"] .mute-unmute, .mediaplayer .state-unmute.mute-unmute, .mediaplayer .captions, .mediaplayer .subtitle-menu button[aria-checked="true"], .mediaplayer .subtitle-menu button, .mediaplayer .playlist-next, .mediaplayer .playlist-prev, .mediaplayer .chapters, .mediaplayer.ended-state > .jme-media-overlay {
|
2
|
+
.mediaplayer[data-state="waiting"] > div.jme-media-overlay, .mediaplayer .fullscreen, .mediaplayer .fullscreen.state-exitfullscreen, .mediaplayer .mediaconfigmenu, .mediaplayer.initial-state > .jme-media-overlay, .mediaplayer button.play-pause, .mediaplayer button.play-pause.state-playing, .mediaplayer .mute-unmute, .mediaplayer[data-volume="medium"] .mute-unmute, .mediaplayer[data-volume="low"] .mute-unmute, .mediaplayer[data-volume="no"] .mute-unmute, .mediaplayer .state-unmute.mute-unmute, .mediaplayer .captions, .mediaplayer .subtitle-menu button[aria-checked="true"], .mediaplayer .subtitle-menu button, .mediaplayer .playlist-next, .mediaplayer .playlist-prev, .mediaplayer .chapters, .mediaplayer.ended-state > .jme-media-overlay {
|
3
3
|
font-family: 'jme';
|
4
4
|
speak: none;
|
5
5
|
font-style: normal;
|
@@ -13,7 +13,7 @@
|
|
13
13
|
-moz-osx-font-smoothing: grayscale;
|
14
14
|
}
|
15
15
|
|
16
|
-
.mediaplayer[data-state="waiting"] > .jme-media-overlay:before {
|
16
|
+
.mediaplayer[data-state="waiting"] > div.jme-media-overlay:before {
|
17
17
|
content: "\e612";
|
18
18
|
}
|
19
19
|
|
@@ -300,10 +300,10 @@
|
|
300
300
|
.mediaplayer[data-state="waiting"] {
|
301
301
|
cursor: default;
|
302
302
|
}
|
303
|
-
.mediaplayer[data-state="waiting"] > .jme-media-overlay {
|
303
|
+
.mediaplayer[data-state="waiting"] > div.jme-media-overlay {
|
304
304
|
background-position: 4px 4px;
|
305
305
|
}
|
306
|
-
.mediaplayer[data-state="waiting"] > .jme-media-overlay:before {
|
306
|
+
.mediaplayer[data-state="waiting"] > div.jme-media-overlay:before {
|
307
307
|
-webkit-animation-name: jmespin;
|
308
308
|
-webkit-animation-iteration-count: infinite;
|
309
309
|
-webkit-animation-duration: 1100ms;
|
@@ -4,6 +4,7 @@
|
|
4
4
|
font-family: 'jme';
|
5
5
|
src: url('jme.eot');
|
6
6
|
}
|
7
|
+
|
7
8
|
@font-face {
|
8
9
|
font-family: 'jme';
|
9
10
|
src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'),
|
@@ -235,7 +236,7 @@ $browser-context: 16; // Default
|
|
235
236
|
|
236
237
|
&[data-state="waiting"] {
|
237
238
|
cursor: default;
|
238
|
-
> .jme-media-overlay {
|
239
|
+
> div.jme-media-overlay {
|
239
240
|
@extend %icon-spinner;
|
240
241
|
background-position: 4px 4px;
|
241
242
|
|
@@ -52,7 +52,8 @@ webshims.register('mediacontrols', function($, webshims, window){
|
|
52
52
|
})();
|
53
53
|
var ios = /iP(hone|od|ad)/i.test(navigator.platform);
|
54
54
|
var ios6 = ios && parseInt(((navigator.appVersion).match(/OS (\d+)_\d+/) || ['','8'])[1], 10) < 7;
|
55
|
-
var
|
55
|
+
var modern = window.Modernizr;
|
56
|
+
var hasYtBug = (!modern || !modern.videoautoplay) && (ios || /android/i.test(navigator.userAgent));
|
56
57
|
var loadLazy = function(){
|
57
58
|
if(!loadLazy.loaded){
|
58
59
|
loadLazy.loaded = true;
|
@@ -173,7 +174,8 @@ webshims.register('mediacontrols', function($, webshims, window){
|
|
173
174
|
if(!e){
|
174
175
|
e.type = 'playing';
|
175
176
|
}
|
176
|
-
|
177
|
+
|
178
|
+
if(isInitial && (!isYt || !hasYtBug || e.type == 'playing' || data.media.prop('readyState') || data.media.prop('networkState'))){
|
177
179
|
isInitial = false;
|
178
180
|
data.player.removeClass('initial-state');
|
179
181
|
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
webshim.register('mediacapture-picker', function($, webshim, window, document, undefined, featureOptions){
|
2
|
+
"use strict";
|
3
|
+
|
4
|
+
function PhotoShooter($dom){
|
5
|
+
this.$dom = $dom;
|
6
|
+
this._createDom();
|
7
|
+
this.requestMedia();
|
8
|
+
}
|
9
|
+
|
10
|
+
PhotoShooter.prototype = {
|
11
|
+
_createDom: function(){
|
12
|
+
this.$dom.html('<div class="ws-videocapture-view">' +
|
13
|
+
'<video class="ws-usermedia ws-inlineusermedia" autoplay=""></video>' +
|
14
|
+
'<div class="ws-video-overlay"></div>' +
|
15
|
+
'</div>' +
|
16
|
+
'<div class="button-row"><button type="button" class="ws-capture-button">take</button>' +
|
17
|
+
'</div>')
|
18
|
+
;
|
19
|
+
},
|
20
|
+
requestMedia: function(){
|
21
|
+
var that = this;
|
22
|
+
|
23
|
+
|
24
|
+
navigator.getUserMedia(
|
25
|
+
{video: {minWidth: 200, audio: false}},
|
26
|
+
function(stream){
|
27
|
+
that.stream = stream;
|
28
|
+
$('video', that.$dom).prop('src', URL.createObjectURL(stream));
|
29
|
+
},
|
30
|
+
function(){
|
31
|
+
|
32
|
+
}
|
33
|
+
);
|
34
|
+
$('video', that.$dom).removeClass('ws-usermedia');
|
35
|
+
|
36
|
+
}
|
37
|
+
};
|
38
|
+
|
39
|
+
webshim.mediacapture.showContent = function($fileinput, $button, popover){
|
40
|
+
var stream = new PhotoShooter(popover.contentElement);
|
41
|
+
};
|
42
|
+
});
|
@@ -0,0 +1,159 @@
|
|
1
|
+
webshim.register('mediacapture', function($, webshim, window, document, undefined, featureOptions){
|
2
|
+
"use strict";
|
3
|
+
var hasCamera = -1;
|
4
|
+
var checkCameras = $.noop;
|
5
|
+
var sel = 'input[type="file"].ws-filereader, input[type="file"].ws-capture';
|
6
|
+
var cameraListPromise = $.Deferred();
|
7
|
+
|
8
|
+
//
|
9
|
+
|
10
|
+
(function(){
|
11
|
+
var tmp;
|
12
|
+
|
13
|
+
var hasNativeUserMedia = !!(navigator.getUserMedia && !navigator.wsGetUserMedia);
|
14
|
+
var hasFlash = swfmini.hasFlashPlayerVersion('11.3');
|
15
|
+
var writeToStorage = function(){
|
16
|
+
try{
|
17
|
+
sessionStorage.setItem('wsCameras', JSON.stringify(hasCamera));
|
18
|
+
} catch (e){}
|
19
|
+
};
|
20
|
+
var reject = function(){
|
21
|
+
hasCamera = 0;
|
22
|
+
writeToStorage();
|
23
|
+
cameraListPromise.reject(hasCamera);
|
24
|
+
};
|
25
|
+
var resolve = function(){
|
26
|
+
writeToStorage();
|
27
|
+
cameraListPromise.resolve(hasCamera);
|
28
|
+
};
|
29
|
+
try {
|
30
|
+
tmp = JSON.parse(sessionStorage.getItem('wsCameras'));
|
31
|
+
if(tmp == null){
|
32
|
+
hasCamera = -1;
|
33
|
+
}
|
34
|
+
} catch(e){}
|
35
|
+
|
36
|
+
if(hasCamera === 0 || (hasCamera == -1 && !hasNativeUserMedia && !hasFlash)){
|
37
|
+
reject();
|
38
|
+
} else if(hasFlash){
|
39
|
+
checkCameras = function(){
|
40
|
+
var mediaOptions = webshim.cfg.mediaelement;
|
41
|
+
var playerSwfPath = mediaOptions.playerPath || (webshim.cfg.basePath + "swf/" + (mediaOptions.playerName || 'JarisFLVPlayer.swf'));
|
42
|
+
var id = 'wscameralistdetection';
|
43
|
+
var vars = {
|
44
|
+
controltype: '1',
|
45
|
+
jsapi: '1',
|
46
|
+
source: '',
|
47
|
+
id: id,
|
48
|
+
evtId: id
|
49
|
+
};
|
50
|
+
var attrs = {
|
51
|
+
id: id,
|
52
|
+
name: id
|
53
|
+
};
|
54
|
+
var params = {
|
55
|
+
allowscriptaccess: 'always',
|
56
|
+
allowNetworking: 'all'
|
57
|
+
};
|
58
|
+
var $dom = $('<div><div id="'+ id +'"></div></div>')
|
59
|
+
.css({position: 'absolute', left: -999, width: 5, height: 5, overflow: 'hidden'})
|
60
|
+
.appendTo('body')
|
61
|
+
;
|
62
|
+
|
63
|
+
webshim.mediaelement.jarisEvent = webshim.mediaelement.jarisEvent || {};
|
64
|
+
webshim.mediaelement.jarisEvent[id] = function(jaris){
|
65
|
+
hasCamera = jaris.cameras;
|
66
|
+
$dom.remove();
|
67
|
+
if(hasCamera){
|
68
|
+
resolve();
|
69
|
+
} else {
|
70
|
+
reject();
|
71
|
+
}
|
72
|
+
};
|
73
|
+
|
74
|
+
|
75
|
+
checkCameras = $.noop;
|
76
|
+
swfmini.embedSWF(playerSwfPath, id, "100%", "100%", "11.3", false, vars, params, attrs);
|
77
|
+
};
|
78
|
+
|
79
|
+
} else {
|
80
|
+
hasCamera = -1;
|
81
|
+
resolve();
|
82
|
+
}
|
83
|
+
})();
|
84
|
+
var loadPicker = function(){
|
85
|
+
webshim.ready('WINDOWLOAD', function(){
|
86
|
+
webshim.loader.loadList(['mediacapture-picker']);
|
87
|
+
});
|
88
|
+
loadPicker = $.noop;
|
89
|
+
};
|
90
|
+
|
91
|
+
|
92
|
+
var _createPhotoPicker = function(){
|
93
|
+
if($(this).is('[capture].ws-filereader, .ws-capture') && webshim.implement(this, 'capture')){
|
94
|
+
var $wrapper, $customFile;
|
95
|
+
var $fileinput = $(this);
|
96
|
+
var $button = $('<button type="button" class="ws-capture-button">photo</button>');
|
97
|
+
var popover = webshim.objectCreate(webshim.wsPopover, {}, $.extend({prepareFor: $button}));
|
98
|
+
popover.element.addClass('capture-popover input-picker');
|
99
|
+
|
100
|
+
if($fileinput.is('.ws-custom-file > *')){
|
101
|
+
$customFile = $fileinput.closest('.ws-custom-file');
|
102
|
+
$wrapper = $('<div class="ws-capture-file" />').insertAfter($customFile);
|
103
|
+
$wrapper.append($button).append($customFile);
|
104
|
+
} else {
|
105
|
+
$fileinput.before($button);
|
106
|
+
}
|
107
|
+
popover.element.insertAfter($button);
|
108
|
+
|
109
|
+
$button.on('click', function(){
|
110
|
+
webshim.mediacapture.showContent($fileinput, $button, popover);
|
111
|
+
popover.show();
|
112
|
+
});
|
113
|
+
loadPicker();
|
114
|
+
}
|
115
|
+
};
|
116
|
+
var createPhotoPicker = function (){
|
117
|
+
var elem = this;
|
118
|
+
checkCameras();
|
119
|
+
|
120
|
+
cameraListPromise.done(function(){
|
121
|
+
_createPhotoPicker.call(elem);
|
122
|
+
});
|
123
|
+
};
|
124
|
+
|
125
|
+
webshim.mediacapture = {
|
126
|
+
showContent: function($fileinput, $button, popover){
|
127
|
+
webshim.loader.loadList(['mediacapture-picker']);
|
128
|
+
webshim.ready('mediacapture-picker', function(){
|
129
|
+
webshim.mediacapture.showContent($fileinput, $button, popover);
|
130
|
+
});
|
131
|
+
}
|
132
|
+
};
|
133
|
+
webshim.defineNodeNamesBooleanProperty('input', 'capture');
|
134
|
+
|
135
|
+
if(hasCamera){
|
136
|
+
|
137
|
+
cameraListPromise.done(function(){
|
138
|
+
createPhotoPicker = _createPhotoPicker;
|
139
|
+
webshim.loader.addModule('mediacapture-picker', {
|
140
|
+
noAutoCallback: true,
|
141
|
+
css: 'styles/forms-picker.css',
|
142
|
+
options: featureOptions
|
143
|
+
});
|
144
|
+
|
145
|
+
});
|
146
|
+
|
147
|
+
webshim.addReady(function(context, insertedElement){
|
148
|
+
$(sel, context).add(insertedElement.filter(sel))
|
149
|
+
.filter('[accept*="image"], :not([accept]), [accept=""]')
|
150
|
+
.each(createPhotoPicker)
|
151
|
+
;
|
152
|
+
});
|
153
|
+
|
154
|
+
webshim.ready('WINDOWLOAD', checkCameras);
|
155
|
+
}
|
156
|
+
if(document.readyState == 'complete'){
|
157
|
+
webshim.isReady('WINDOWLOAD', true);
|
158
|
+
}
|
159
|
+
});
|
@@ -58,9 +58,16 @@
|
|
58
58
|
})();
|
59
59
|
}
|
60
60
|
|
61
|
+
if(window.CanvasRenderingContext2D && CanvasRenderingContext2D.prototype){
|
62
|
+
CanvasRenderingContext2D.prototype.wsImageComplete = function(cb){
|
63
|
+
cb.call(this, this);
|
64
|
+
};
|
65
|
+
}
|
66
|
+
|
61
67
|
webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
|
62
68
|
var hasSwf = swfmini.hasFlashPlayerVersion('11.3');
|
63
69
|
var mediaelement = webshims.mediaelement;
|
70
|
+
var allowYtLoading = false;
|
64
71
|
|
65
72
|
mediaelement.parseRtmp = function(data){
|
66
73
|
var src = data.src.split('://');
|
@@ -156,7 +163,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
156
163
|
return function(){
|
157
164
|
if(loaded || !hasYt){return;}
|
158
165
|
loaded = true;
|
159
|
-
|
166
|
+
if(allowYtLoading){
|
167
|
+
webshims.loader.loadScript("https://www.youtube.com/player_api");
|
168
|
+
}
|
160
169
|
$(function(){
|
161
170
|
webshims._polyfill(["mediaelement-yt"]);
|
162
171
|
});
|
@@ -342,6 +351,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
342
351
|
}
|
343
352
|
});
|
344
353
|
if(!requested && hasYt && !mediaelement.createSWF){
|
354
|
+
allowYtLoading = true;
|
345
355
|
loadYt();
|
346
356
|
}
|
347
357
|
};
|
@@ -506,6 +516,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
506
516
|
.add(insertedElement.filter('video, audio'))
|
507
517
|
.each(function(){
|
508
518
|
if(!mediaelement.canNativePlaySrces(this)){
|
519
|
+
allowYtLoading = true;
|
509
520
|
loadThird();
|
510
521
|
handleMedia = true;
|
511
522
|
return false;
|
@@ -528,6 +539,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
528
539
|
mediaelement.loadDebugger();
|
529
540
|
});
|
530
541
|
}
|
542
|
+
|
531
543
|
//set native implementation ready, before swf api is retested
|
532
544
|
if(hasNative){
|
533
545
|
webshims.isReady('mediaelement-core', true);
|
@@ -124,12 +124,13 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
124
124
|
};
|
125
125
|
|
126
126
|
|
127
|
-
mediaelement.jarisEvent = {};
|
127
|
+
mediaelement.jarisEvent = mediaelement.jarisEvent || {};
|
128
128
|
var localConnectionTimer;
|
129
129
|
var onEvent = {
|
130
130
|
onPlayPause: function(jaris, data, override){
|
131
131
|
var playing, type;
|
132
132
|
var idled = data.paused || data.ended;
|
133
|
+
|
133
134
|
if(override == null){
|
134
135
|
try {
|
135
136
|
playing = data.api.api_get("isPlaying");
|
@@ -143,12 +144,15 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
143
144
|
type = data.paused ? 'pause' : 'play';
|
144
145
|
data._ppFlag = true;
|
145
146
|
trigger(data._elem, type);
|
147
|
+
|
148
|
+
}
|
149
|
+
if(!data.paused || playing == idled || playing == null){
|
146
150
|
if(data.readyState < 3){
|
147
151
|
setReadyState(3, data);
|
148
152
|
}
|
149
|
-
|
150
|
-
|
151
|
-
|
153
|
+
}
|
154
|
+
if(!data.paused){
|
155
|
+
trigger(data._elem, 'playing');
|
152
156
|
}
|
153
157
|
},
|
154
158
|
onSeek: function(jaris, data){
|
@@ -900,11 +904,11 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
900
904
|
options.changeSWF(vars, elem, canPlaySrc, data, 'embed');
|
901
905
|
clearTimeout(data.flashBlock);
|
902
906
|
|
903
|
-
swfmini.embedSWF(playerSwfPath, elemId, "100%", "100%", "
|
907
|
+
swfmini.embedSWF(playerSwfPath, elemId, "100%", "100%", "11.3", false, vars, params, attrs, function(swfData){
|
904
908
|
if(swfData.success){
|
905
909
|
var fBlocker = function(){
|
906
|
-
if((!swfData.ref.parentNode
|
907
|
-
|
910
|
+
if((!swfData.ref.parentNode) || swfData.ref.style.display == "none"){
|
911
|
+
|
908
912
|
$(elem).trigger('flashblocker');
|
909
913
|
webshims.warn("flashblocker assumed");
|
910
914
|
}
|
@@ -1138,8 +1142,19 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
1138
1142
|
webshim.error('canvas.drawImage feature is needed. In IE8 flashvanvas pro can be used');
|
1139
1143
|
}
|
1140
1144
|
|
1145
|
+
CanvasRenderingContext2D.prototype.wsImageComplete = function(cb){
|
1146
|
+
if(this._wsIsLoading){
|
1147
|
+
if(!this._wsLoadingCbs){
|
1148
|
+
this._wsLoadingCbs = [];
|
1149
|
+
}
|
1150
|
+
this._wsLoadingCbs.push(cb);
|
1151
|
+
} else {
|
1152
|
+
cb.call(this, this);
|
1153
|
+
}
|
1154
|
+
};
|
1155
|
+
|
1141
1156
|
CanvasRenderingContext2D.prototype.drawImage = function(elem){
|
1142
|
-
var data, img, args, imgData;
|
1157
|
+
var data, img, args, imgData, hadCachedImg;
|
1143
1158
|
var context = this;
|
1144
1159
|
|
1145
1160
|
if(isVideo[elem.nodeName] && (data = webshims.data(elem, 'mediaelement')) && data.isActive == 'third' && data.api.api_image){
|
@@ -1157,18 +1172,39 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
|
|
1157
1172
|
}
|
1158
1173
|
|
1159
1174
|
args = slice.call(arguments, 1);
|
1160
|
-
|
1175
|
+
|
1176
|
+
if(options.canvasSync && data.canvasImg){
|
1177
|
+
args.unshift(data.canvasImg);
|
1178
|
+
_drawImage.apply(context, args);
|
1179
|
+
args = slice.call(arguments, 1);
|
1180
|
+
hadCachedImg = true;
|
1181
|
+
}
|
1182
|
+
|
1183
|
+
img = document.createElement('img');
|
1161
1184
|
|
1162
1185
|
//todo find a performant sync way
|
1163
1186
|
img.onload = function(){
|
1164
1187
|
args.unshift(this);
|
1165
|
-
_drawImage.apply(context, args);
|
1166
1188
|
img.onload = null;
|
1189
|
+
|
1190
|
+
if(options.canvasSync){
|
1191
|
+
data.canvasImg = img;
|
1192
|
+
if(hadCachedImg && options.noDoubbleDraw){
|
1193
|
+
return;
|
1194
|
+
}
|
1195
|
+
}
|
1196
|
+
_drawImage.apply(context, args);
|
1197
|
+
context._wsIsLoading = false;
|
1198
|
+
if(context._wsLoadingCbs && context._wsLoadingCbs.length){
|
1199
|
+
while(context._wsLoadingCbs.length){
|
1200
|
+
context._wsLoadingCbs.shift().call(context, context);
|
1201
|
+
}
|
1202
|
+
}
|
1167
1203
|
};
|
1168
1204
|
|
1169
1205
|
img.src = 'data:image/jpeg;base64,'+imgData;
|
1170
|
-
|
1171
|
-
if(img.complete){
|
1206
|
+
this._wsIsLoading = true;
|
1207
|
+
if(img.complete && img.onload){
|
1172
1208
|
img.onload();
|
1173
1209
|
}
|
1174
1210
|
return;
|