Allow same opener as current window

This commit is contained in:
HelloZeroNet 2016-03-26 00:20:53 +01:00
parent 5b0ae42d13
commit 045a57491a
2 changed files with 8 additions and 8 deletions

View file

@ -23,7 +23,7 @@ class Wrapper
@wrapperWsInited = false # Wrapper notified on websocket open @wrapperWsInited = false # Wrapper notified on websocket open
@site_error = null # Latest failed file download @site_error = null # Latest failed file download
@address = null @address = null
@opener = null @opener_tested = false
window.onload = @onLoad # On iframe loaded window.onload = @onLoad # On iframe loaded
window.onhashchange = (e) => # On hash change window.onhashchange = (e) => # On hash change
@ -71,13 +71,13 @@ class Wrapper
# Incoming message from inner frame # Incoming message from inner frame
onMessageInner: (e) => onMessageInner: (e) =>
# No nonce security enabled, test if window opener present # No nonce security enabled, test if window opener present
if not window.postmessage_nonce_security and @opener == null if not window.postmessage_nonce_security and @opener_tested == false
if window.opener if window.opener and window.opener != window
@log "Opener present", window.opener @log "Opener present", window.opener
@displayOpenerDialog() @displayOpenerDialog()
return false return false
else else
@opener = false @opener_tested = true
message = e.data message = e.data
# Invalid message (probably not for us) # Invalid message (probably not for us)

View file

@ -781,7 +781,7 @@ jQuery.extend( jQuery.easing,
this.wrapperWsInited = false; this.wrapperWsInited = false;
this.site_error = null; this.site_error = null;
this.address = null; this.address = null;
this.opener = null; this.opener_tested = false;
window.onload = this.onLoad; window.onload = this.onLoad;
window.onhashchange = (function(_this) { window.onhashchange = (function(_this) {
return function(e) { return function(e) {
@ -847,13 +847,13 @@ jQuery.extend( jQuery.easing,
Wrapper.prototype.onMessageInner = function(e) { Wrapper.prototype.onMessageInner = function(e) {
var cmd, message, query; var cmd, message, query;
if (!window.postmessage_nonce_security && this.opener === null) { if (!window.postmessage_nonce_security && this.opener_tested === false) {
if (window.opener) { if (window.opener && window.opener !== window) {
this.log("Opener present", window.opener); this.log("Opener present", window.opener);
this.displayOpenerDialog(); this.displayOpenerDialog();
return false; return false;
} else { } else {
this.opener = false; this.opener_tested = true;
} }
} }
message = e.data; message = e.data;