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;