Page 2 of 3
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Mon Oct 26, 2015 2:14 pm
by Somehuman
barbaz wrote:@bldewolf: Thank you for your investigations and sharing your findings. It seems that the GA surrogate needs an update to cope with the change avoiding deprecated JS stuff.
Can someone who sees the issue, please:
1) make sure surrogates are enabled & the GA surrogate is default
2) set about:config > noscript.surrogate.debug to true
3) reproduce the problem and check the Browser Console (Ctrl-Shift-J) when this issue happens and post here any JS errors & related messages?
(if you don't know, turn off CSS warnings and post everything else you see)
I would guess that there is an error happening inside the surrogate itself, which get suppressed by default.
This is the console output with surrogate debugging enabled. I'm using Firefox 38.3.0 ESR on Linux and NoScript 2.6.9.39:
Code: Select all
this.getDescriptor is not a function rs=AMdsDvDEEGfqAQ_4dddRJnzPW0NWOOi7UQ:644:0
TypeError: L is not a function rs=AMdsDvDEEGfqAQ_4dddRJnzPW0NWOOi7UQ:264:238
this.getDescriptor is not a function rs=AMdsDvDEEGfqAQ_4dddRJnzPW0NWOOi7UQ:644:0
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Thu Oct 29, 2015 7:17 pm
by barbaz
Hmm, I was under the mistaken impression that certain deprecated properties had been entirely removed, but I've just realized they're still there for at least a couple more Gecko releases... Does using the 2.6.9.32rc2 version of the ga surrogate with latest NoScript, remove the need for exception or otherwise disable it on Keep?
Code: Select all
(function(){var _0=function()_0,_u=function(){};_0.__noSuchMethod__=_0;('ga'in window)||(ga=_u);with(window)urchinTracker=_u,_gaq={__noSuchMethod__:_0,push:function(f){if(typeof f=='function')f();else if(f&&f.shift&&f[0]in this)this[f.shift()].apply(this,f)},_set:function(a,b){if(typeof b=='function')b()},_link:function(h){if(h)location.href=h},_linkByPost:function(f){if(f&&f.submit)f.submit();return true},_getLinkerUrl:function(u){return u},_trackEvent:_0},_gat={__noSuchMethod__:function(){return _gaq}}})()
(if that works, I have no idea the real fix...)
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Fri Dec 11, 2015 6:09 am
by ceri
barbaz wrote:Hmm, I was under the mistaken impression that certain deprecated properties had been entirely removed, but I've just realized they're still there for at least a couple more Gecko releases... Does using the 2.6.9.32rc2 version of the ga surrogate with latest NoScript, remove the need for exception or otherwise disable it on Keep?
Code: Select all
(function(){var _0=function()_0,_u=function(){};_0.__noSuchMethod__=_0;('ga'in window)||(ga=_u);with(window)urchinTracker=_u,_gaq={__noSuchMethod__:_0,push:function(f){if(typeof f=='function')f();else if(f&&f.shift&&f[0]in this)this[f.shift()].apply(this,f)},_set:function(a,b){if(typeof b=='function')b()},_link:function(h){if(h)location.href=h},_linkByPost:function(f){if(f&&f.submit)f.submit();return true},_getLinkerUrl:function(u){return u},_trackEvent:_0},_gat={__noSuchMethod__:function(){return _gaq}}})()
(if that works, I have no idea the real fix...)
Yep, If I replace the ga surrogate with that version you quoted, google keep works again using the latest NS version (2.7?)
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Fri Dec 11, 2015 4:23 pm
by barbaz
Thanks. Can you please try with this debug version of the surrogate and post the console log as before? (I don't expect it to work)
Code: Select all
let dbp=function(s){let handler={get:function(t,n)n in t?t[n]:function(){console.log(n);return t.__noSuchMethod__(n,Array.prototype.slice.call(arguments))}};return new Proxy(s||{},handler)};(function(){var _0=dbp(function()_0),_u=function(){};_0.__noSuchMethod__=_0;('ga'in window)||(ga=_u);with(window)urchinTracker=_u,_gaq=dbp({__noSuchMethod__:_0,push:function(f){if(typeof f=='function')f();else if(f&&f.shift&&f[0]in this)this[f.shift()].apply(this,f)},_set:function(a,b){if(typeof b=='function')b()},_link:function(h){if(h)location.href=h},_linkByPost:function(f){if(f&&f.submit)f.submit();return true},_getLinkerUrl:function(u){return u},_trackEvent:_0}),_gat=dbp({__noSuchMethod__:function(){return _gaq}})})()
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Fri Dec 11, 2015 4:25 pm
by barbaz
add: If it's not any different from before, please check the Web Console (Ctrl-Shift-K)
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Sat Dec 12, 2015 8:43 pm
by ceri
barbaz wrote:Thanks. Can you please try with this debug version of the surrogate and post the console log as before? (I don't expect it to work)
Code: Select all
let dbp=function(s){let handler={get:function(t,n)n in t?t[n]:function(){console.log(n);return t.__noSuchMethod__(n,Array.prototype.slice.call(arguments))}};return new Proxy(s||{},handler)};(function(){var _0=dbp(function()_0),_u=function(){};_0.__noSuchMethod__=_0;('ga'in window)||(ga=_u);with(window)urchinTracker=_u,_gaq=dbp({__noSuchMethod__:_0,push:function(f){if(typeof f=='function')f();else if(f&&f.shift&&f[0]in this)this[f.shift()].apply(this,f)},_set:function(a,b){if(typeof b=='function')b()},_link:function(h){if(h)location.href=h},_linkByPost:function(f){if(f&&f.submit)f.submit();return true},_getLinkerUrl:function(u){return u},_trackEvent:_0}),_gat=dbp({__noSuchMethod__:function(){return _gaq}})})()
That one appears to work fine as well. Console log with debug:
http://pastebin.com/RKabRRtp
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Sat Dec 12, 2015 9:11 pm
by barbaz
???
Thanks for testing but that result makes zero sense to me - I literally just copy-pasted some NoScript internal code into the surrogate and stuck a console.log() in there... I'm surprised that A) it works, and B) there are no log entries from the inserted console.log call.
Are you sure that the surrogate is running? If you have any doubt, stick something like this at the very beginning of the surrogate
and see if you get an alert notification dialog.
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Sat Dec 12, 2015 9:21 pm
by ceri
barbaz wrote:???
Thanks for testing but that result makes zero sense to me - I literally just copy-pasted some NoScript internal code into the surrogate and stuck a console.log() in there... I'm surprised that A) it works, and B) there are no log entries from the inserted console.log call.
Are you sure that the surrogate is running? If you have any doubt, stick something like this at the very beginning of the surrogate
and see if you get an alert notification dialog.
I stuck the alert here and it worked:
Code: Select all
let dbp=function(s){alert("AAAAAAAAAAAAAAAAAA!!!!");let handler={get:function(t,n)n in t?t[n]:function(){console.log(n);return t.__noSuchMethod__(n,Array.prototype.slice.call(arguments))}};return new Proxy(s||{},handler)};(function(){var _0=dbp(function()_0),_u=function(){};_0.__noSuchMethod__=_0;('ga'in window)||(ga=_u);with(window)urchinTracker=_u,_gaq=dbp({__noSuchMethod__:_0,push:function(f){if(typeof f=='function')f();else if(f&&f.shift&&f[0]in this)this[f.shift()].apply(this,f)},_set:function(a,b){if(typeof b=='function')b()},_link:function(h){if(h)location.href=h},_linkByPost:function(f){if(f&&f.submit)f.submit();return true},_getLinkerUrl:function(u){return u},_trackEvent:_0}),_gat=dbp({__noSuchMethod__:function(){return _gaq}})})()
When I move it next to console.log(), I get no alert
Code: Select all
let dbp=function(s){let handler={get:function(t,n)n in t?t[n]:function(){alert("AAAAAAAAAAAAAAAAAA!!!!");console.log(n);return t.__noSuchMethod__(n,Array.prototype.slice.call(arguments))}};return new Proxy(s||{},handler)};(function(){var _0=dbp(function()_0),_u=function(){};_0.__noSuchMethod__=_0;('ga'in window)||(ga=_u);with(window)urchinTracker=_u,_gaq=dbp({__noSuchMethod__:_0,push:function(f){if(typeof f=='function')f();else if(f&&f.shift&&f[0]in this)this[f.shift()].apply(this,f)},_set:function(a,b){if(typeof b=='function')b()},_link:function(h){if(h)location.href=h},_linkByPost:function(f){if(f&&f.submit)f.submit();return true},_getLinkerUrl:function(u){return u},_trackEvent:_0}),_gat=dbp({__noSuchMethod__:function(){return _gaq}})})()
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Sun Dec 13, 2015 1:07 am
by barbaz
Ah, I do see one thing I changed without noticing that I did so, but I don't understand why this would make a difference...
EDIT That's not it. Removed irrelevant NoScript patch that wouldn't have helped.
See below for info on why the problem is happening
/EDIT
Thanks again ceri for the testing.
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Sun Jan 10, 2016 6:02 am
by jdigital
Hi Barbaz, I also found that your "diagnostic" surrogate fixes Google Keep. In the Google Keep page, I discovered that the $S function is defined as this:
Code: Select all
(function (a,b,c){Tj.call(this,b,c);this.na=a;sj(this,a.getId());this.$=new ig(0,0);this.ma=new sp("Remove",void 0,c);this.Ja(this.ma);this.Ha=this.oa=0;this.qa="";this.R=this.U=null;this.Ba=Xm(a).getId();this.ta=new xk(this.gG,3E3,this);this.La=0;ZS(this)})
unminified:
Code: Select all
(function(a, b, c) {
Tj.call(this, b, c);
this.na = a;
sj(this, a.getId());
this.$ = new ig(0, 0);
this.ma = new sp("Remove", void 0, c);
this.Ja(this.ma);
this.Ha = this.oa = 0;
this.qa = "";
this.R = this.U = null;
this.Ba = Xm(a).getId();
this.ta = new xk(this.gG, 3E3, this);
this.La = 0;
ZS(this)
})
So perhaps Google Keep is defining $S, which is used by the NoScript surrogate for google-analytics, causing the surrogate to fail, which is causing Keep to fail.
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Sun Jan 10, 2016 7:00 am
by barbaz
Interesting... not sure but I think you might be right about that. Nice find.
I'll do some testing later to try to confirm for sure whether it's possible.
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Sat Jan 16, 2016 3:01 am
by barbaz
@jdigital: Thanks for your work, that *is* what's going on here!
The root cause of the problem is the surrogate's use of the
construct - I don't understand what that is exactly but it's apparently force-overriding local variables (that includes $S) with equivalently-named properties of window.
Off to read about that syntax on MDN:
https://developer.mozilla.org/docs/Web/ ... ments/with
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Sat Jan 16, 2016 4:28 am
by barbaz
I'm not sure how to fix the surrogate, it has too much other JS syntaxes still unknown to me
PMed Giorgio.
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Sun Jan 17, 2016 6:53 am
by jdigital
barbaz, we all thank you!
Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3
Posted: Tue Feb 02, 2016 9:59 pm
by barbaz
There are a NoScript release 2.9.0.3rc1 and 2.9.0.3 (available only from
AMO atm) that seems to have dropped the problematic `with` statement from the ga surrogate, even though the changelog doesn't mention it. Does the problem with Google Keep still occur despite the latest NoScript?