Merge branch '3.0' of https://github.com/calzoneman/sync into 3.0
[KisSync.git] / player / embed.coffee
blobe354298650f7fbb19faa43287638b88dc198f4c3
1 DEFAULT_ERROR = 'You are currently connected via HTTPS but the embedded content
2     uses non-secure plain HTTP.  Your browser therefore blocks it from
3     loading due to mixed content policy.  To fix this, embed the video using a
4     secure link if available (https://...), or find another source for the content.'
6 genParam = (name, value) ->
7     $('<param/>').attr(
8         name: name
9         value: value
10     )
12 window.EmbedPlayer = class EmbedPlayer extends Player
13     constructor: (data) ->
14         if not (this instanceof EmbedPlayer)
15             return new EmbedPlayer(data)
17         @load(data)
19     load: (data) ->
20         @setMediaProperties(data)
22         embed = data.meta.embed
23         if not embed?
24             console.error('EmbedPlayer::load(): missing meta.embed')
25             return
27         @player = @loadIframe(embed)
29         removeOld(@player)
31     loadIframe: (embed) ->
32         if embed.src.indexOf('http:') == 0 and location.protocol == 'https:'
33             if @__proto__.mixedContentError?
34                 error = @__proto__.mixedContentError
35             else
36                 error = DEFAULT_ERROR
37             alert = makeAlert('Mixed Content Error', error, 'alert-danger')
38                 .removeClass('col-md-12')
39             alert.find('.close').remove()
40             return alert
41         else
42             iframe = $('<iframe/>').attr(
43                 src: embed.src
44                 frameborder: '0'
45                 allow: 'autoplay'
46                 allowfullscreen: '1'
47             )
49             return iframe