[FIXED] keep.google.com gives blank page with NS 2.6.9.37rc2

Post a reply

Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: [FIXED] keep.google.com gives blank page with NS 2.6.9.37rc2

Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3

by barbaz » Tue Feb 02, 2016 10:11 pm

Thanks for checking that.
Marking this thread Resolved.

Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3

by Simon T » Tue Feb 02, 2016 10:09 pm

Google Keep works again for me with NoScript version 2.9.0.3.

Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3

by barbaz » Tue Feb 02, 2016 9:59 pm

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?

Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3

by jdigital » Sun Jan 17, 2016 6:53 am

barbaz, we all thank you!

Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3

by barbaz » Sat Jan 16, 2016 4:28 am

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

by barbaz » Sat Jan 16, 2016 3:01 am

@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

Code: Select all

with(window){ /* ... */ }
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

by barbaz » Sun Jan 10, 2016 7:00 am

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

by jdigital » Sun Jan 10, 2016 6:02 am

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

by barbaz » Sun Dec 13, 2015 1:07 am

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

by ceri » Sat Dec 12, 2015 9:21 pm

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

Code: Select all

alert("AAAAAAAAAAAAAAAAAA!!!!");
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

by barbaz » Sat Dec 12, 2015 9:11 pm

???
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

Code: Select all

alert("AAAAAAAAAAAAAAAAAA!!!!");
and see if you get an alert notification dialog.

Re: keep.google.com gives blank page in FF41 with NS 2.6.9.3

by ceri » Sat Dec 12, 2015 8:43 pm

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

by barbaz » Fri Dec 11, 2015 4:25 pm

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

by barbaz » Fri Dec 11, 2015 4:23 pm

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

by ceri » Fri Dec 11, 2015 6:09 am

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?)

Top