Rev908, Sidebar shorten long bad filenames, Only show opener error if site is using the API

This commit is contained in:
HelloZeroNet 2016-02-23 01:36:47 +01:00
parent b2fb1fcd3c
commit 58fa5f6e16
6 changed files with 47 additions and 48 deletions

View file

@ -8,7 +8,7 @@ class Config(object):
def __init__(self, argv):
self.version = "0.3.6"
self.rev = 907
self.rev = 908
self.argv = argv
self.action = None
self.config_file = "zeronet.conf"

View file

@ -23,6 +23,7 @@ class Wrapper
@wrapperWsInited = false # Wrapper notified on websocket open
@site_error = null # Latest failed file download
@address = null
@opener = null
window.onload = @onLoad # On iframe loaded
$(window).on "hashchange", => # On hash change
@ -64,9 +65,16 @@ class Wrapper
else
@sendInner message # Pass message to inner frame
# Incoming message from inner frame
onMessageInner: (e) =>
if not window.postmessage_nonce_security and @opener == null # Test opener
if window.opener
@log "Opener present", window.opener
@displayOpenerDialog()
return false
else
@opener = false
message = e.data
if window.postmessage_nonce_security and message.wrapper_nonce != window.wrapper_nonce
@log "Message nonce error:", message.wrapper_nonce, '!=', window.wrapper_nonce
@ -118,6 +126,14 @@ class Wrapper
return back
displayOpenerDialog: ->
elem = $("<div class='opener-overlay'><div class='dialog'>You have opened this page by clicking on a link. Please, confirm if you want to load this site.<a href='?' target='_blank' class='button'>Open site</a></div></div>")
elem.find('a').on "click", ->
window.open("?", "_blank")
window.close()
return false
$("body").prepend(elem)
# - Actions -
actionNotification: (message) ->
@ -383,25 +399,4 @@ else
ws_url = proto.ws + ":" + origin.replace(proto.http+":", "") + "/Websocket?wrapper_key=" + window.wrapper_key
if window.opener and window.postmessage_nonce_security == false
# Window opener security problem workaround: Open a new window, close this one
console.log "Opener present:", window.opener
setTimeout ( -> # Wait 200ms to parent tab closing
console.log "Opener still present:", window.opener
if window.opener
# Opener still present, display message
elem = $("<div class='opener-overlay'><div class='dialog'>You have opened this page by clicking on a link. Please, confirm if you want to load this site.<a href='?' target='_blank' class='button'>Open site</a></div></div>")
elem.find('a').on "click", ->
window.open("?", "_blank")
window.close()
return false
$("body").prepend(elem)
else
window.location.reload()
# Opener gone, continue init
# window.wrapper = new Wrapper(ws_url)
# window.wrapper.reload()
), 200
else
window.wrapper = new Wrapper(ws_url)
window.wrapper = new Wrapper(ws_url)

View file

@ -781,6 +781,7 @@ jQuery.extend( jQuery.easing,
this.wrapperWsInited = false;
this.site_error = null;
this.address = null;
this.opener = null;
window.onload = this.onLoad;
$(window).on("hashchange", (function(_this) {
return function() {
@ -835,6 +836,15 @@ jQuery.extend( jQuery.easing,
Wrapper.prototype.onMessageInner = function(e) {
var cmd, message, query;
if (!window.postmessage_nonce_security && this.opener === null) {
if (window.opener) {
this.log("Opener present", window.opener);
this.displayOpenerDialog();
return false;
} else {
this.opener = false;
}
}
message = e.data;
if (window.postmessage_nonce_security && message.wrapper_nonce !== window.wrapper_nonce) {
this.log("Message nonce error:", message.wrapper_nonce, '!=', window.wrapper_nonce);
@ -899,6 +909,17 @@ jQuery.extend( jQuery.easing,
return back;
};
Wrapper.prototype.displayOpenerDialog = function() {
var elem;
elem = $("<div class='opener-overlay'><div class='dialog'>You have opened this page by clicking on a link. Please, confirm if you want to load this site.<a href='?' target='_blank' class='button'>Open site</a></div></div>");
elem.find('a').on("click", function() {
window.open("?", "_blank");
window.close();
return false;
});
return $("body").prepend(elem);
};
Wrapper.prototype.actionNotification = function(message) {
var body;
message.params = this.toHtmlSafe(message.params);
@ -1266,25 +1287,6 @@ jQuery.extend( jQuery.easing,
ws_url = proto.ws + ":" + origin.replace(proto.http + ":", "") + "/Websocket?wrapper_key=" + window.wrapper_key;
if (window.opener && window.postmessage_nonce_security === false) {
console.log("Opener present:", window.opener);
setTimeout((function() {
var elem;
console.log("Opener still present:", window.opener);
if (window.opener) {
elem = $("<div class='opener-overlay'><div class='dialog'>You have opened this page by clicking on a link. Please, confirm if you want to load this site.<a href='?' target='_blank' class='button'>Open site</a></div></div>");
elem.find('a').on("click", function() {
window.open("?", "_blank");
window.close();
return false;
});
return $("body").prepend(elem);
} else {
return window.location.reload();
}
}), 200);
} else {
window.wrapper = new Wrapper(ws_url);
}
window.wrapper = new Wrapper(ws_url);
}).call(this);