Rev908, Sidebar shorten long bad filenames, Only show opener error if site is using the API
This commit is contained in:
parent
b2fb1fcd3c
commit
58fa5f6e16
6 changed files with 47 additions and 48 deletions
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue