diff --git a/src/Config.py b/src/Config.py index 710422d4..a8fbb330 100644 --- a/src/Config.py +++ b/src/Config.py @@ -9,7 +9,7 @@ class Config(object): def __init__(self, argv): self.version = "0.5.1" - self.rev = 1791 + self.rev = 1795 self.argv = argv self.action = None self.config_file = "zeronet.conf" diff --git a/src/Ui/media/Wrapper.coffee b/src/Ui/media/Wrapper.coffee index 449f08a0..d553fba0 100644 --- a/src/Ui/media/Wrapper.coffee +++ b/src/Ui/media/Wrapper.coffee @@ -131,6 +131,8 @@ class Wrapper @actionOpenWindow(message.params) else if cmd == "wrapperPermissionAdd" @actionPermissionAdd(message) + else if cmd == "wrapperRequestFullscreen" + @actionRequestFullscreen() else # Send to websocket if message.id < 1000000 @ws.send(message) # Pass message to websocket @@ -168,6 +170,21 @@ class Wrapper w.opener = null w.location = params[0] + actionRequestFullscreen: -> + if "Fullscreen" in @site_info.settings.permissions + elem = document.getElementById("inner-iframe") + request_fullscreen = elem.requestFullScreen || elem.webkitRequestFullscreen || elem.mozRequestFullScreen || elem.msRequestFullScreen + request_fullscreen.call(elem) + setTimeout ( => + if window.innerHeight != screen.height # Fullscreen failed, probably only allowed on click + @displayConfirm "This site requests permission:" + " Fullscreen", "Grant", => + request_fullscreen.call(elem) + ), 100 + else + @displayConfirm "This site requests permission:" + " Fullscreen", "Grant", => + @site_info.settings.permissions.push("Fullscreen") + @actionRequestFullscreen() + @ws.cmd "permissionAdd", "Fullscreen" actionPermissionAdd: (message) -> permission = message.params diff --git a/src/Ui/media/all.js b/src/Ui/media/all.js index ca9a1214..d4dcd375 100644 --- a/src/Ui/media/all.js +++ b/src/Ui/media/all.js @@ -941,6 +941,8 @@ jQuery.extend( jQuery.easing, return this.actionOpenWindow(message.params); } else if (cmd === "wrapperPermissionAdd") { return this.actionPermissionAdd(message); + } else if (cmd === "wrapperRequestFullscreen") { + return this.actionRequestFullscreen(); } else { if (message.id < 1000000) { return this.ws.send(message); @@ -992,6 +994,32 @@ jQuery.extend( jQuery.easing, } }; + Wrapper.prototype.actionRequestFullscreen = function() { + var elem, request_fullscreen; + if (__indexOf.call(this.site_info.settings.permissions, "Fullscreen") >= 0) { + elem = document.getElementById("inner-iframe"); + request_fullscreen = elem.requestFullScreen || elem.webkitRequestFullscreen || elem.mozRequestFullScreen || elem.msRequestFullScreen; + request_fullscreen.call(elem); + return setTimeout(((function(_this) { + return function() { + if (window.innerHeight !== screen.height) { + return _this.displayConfirm("This site requests permission:" + " Fullscreen", "Grant", function() { + return request_fullscreen.call(elem); + }); + } + }; + })(this)), 100); + } else { + return this.displayConfirm("This site requests permission:" + " Fullscreen", "Grant", (function(_this) { + return function() { + _this.site_info.settings.permissions.push("Fullscreen"); + _this.actionRequestFullscreen(); + return _this.ws.cmd("permissionAdd", "Fullscreen"); + }; + })(this)); + } + }; + Wrapper.prototype.actionPermissionAdd = function(message) { var permission; permission = message.params;