Chrome Browser Extension breaks GOG.com - even when protection is disabled.

It took me a while to find the culprit, it's the Adguard Browser Extension:

https://www.gog.com is broken and doesn't show the images of the deals in the middle sections of the site that it would otherwise load on the fly.

It doesn't matter if it's running in integration mode, standalone mode, and even if blocking is entirely disabled for gog.com - it's still broken. Disabling the extension entirely fixes the site - even with active by AdGuard 6.0.

The problems can be reproduced in Chrome 51 and 52 beta:

http://i.imgur.com/4CbBqA5.png
 

avatar

Administrator
Staff member
Administrator
Hm, can't reproduce it on my side. I wonder if Chrome on Mac is different?

@Alex302 could you please check it on Windows?
 
Mhh, still reproducable here:

Chrome 52.0.2743.41 beta-m (64-bit) - Windows 10

Simplest way to check for me: Disable all extension in incognito mode, re-enable Adguard Browser Extension for ingonito mode. Check https://www.gog.com/ -> working fine. Re-enabled Re-enable Adguard 2.3.8 in incognito mode -> https://www.gog.com/ won't load images dynamically any more or stop loading them after a second or two.
 

Blaz

Moderator & Translator
Staff member
Moderator
Reproduced here, but even adding gog.com to the whitelist, it is not working here. When I right click to inspect the element, the pictures are shown.

In Chrome error console you will see the following:
Code:
3b2d483-02a57f2.js:6 TypeError: Cannot read property 'tagName' of null
    at a._resolveImagePosition (064b66f-21c3901.js:3)
    at a._resolveImagePosition (064b66f-21c3901.js:3)
    at a._resolvePagesForItems (064b66f-21c3901.js:3)
    at j (3b2d483-02a57f2.js:57)
    at 3b2d483-02a57f2.js:7
    at e (3b2d483-02a57f2.js:5)
    at 3b2d483-02a57f2.js:5

It is referencing to the following script line (other part of the line is removed due to forum limitation):
Code:
u=O,O=f.$$element=zd(b.createComment(" "+s+": "+f[s]+" ")),d=O[0],ba(h,S(u),d),R=F(u,g,z,Q&&Q.name,{nonTlbTranscludeDirective:H})):(u=zd(Da(d)).contents(),O.empty(),R=F(u,g))),r.template)if(M=!0,X("template",G,r,O),G=r,y=A(r.template)?r.template(O,f):r.template,y=ia(y),r.replace){if(Q=r,u=xa(y)?[]:lb(Z(r.templateNamespace,Nd(y))),d=u[0],1!=u.length||d.nodeType!==Ud)throw Ce("tplrt","Template for directive '{0}' must have exactly one root element. {1}",s,"");ba(h,O,d);var aa={$attr:{}},ga=J(d,[],aa),ha=a.splice(T+1,a.length-(T+1));E&&P(ga),a=a.concat(ga).concat(ha),U(f,aa),W=a.length}else O.html(y);if(r.templateUrl)M=!0,X("template",G,r,O),G=r,r.replace&&(Q=r),q=V(a.splice(T,a.length-T),O,f,h,I&&R,k,l,{controllerDirectives:C,newScopeDirective:B!==r&&B,newIsolateScopeDirective:E,templateDirective:G,nonTlbTranscludeDirective:H}),W=a.length;else if(r.compile)try{w=r.compile(O,f,R),A(w)?n(null,w,Y,_):w&&n(w.pre,w.post,Y,_)}catch(ja){e(ja,$(O))}r.terminal&&(q.terminal=!0,z=Math.max(z,r.priority))}return q.scope=B&&B.scope===!0,q.transcludeOnThisElement=I,q.templateOnThisElement=M,q.transclude=R,m.hasElementTranscludeDirective=N,q}function P(a){for(var b=0,c=a.length;b<c;b++)a[b]=o(a[b],{$$isolateScope:!0})}function R(b,d,f,g,h,i,l){if(d===h)return null;var m=null;if(j.hasOwnProperty(d))for(var n,p=a.get(d+k),q=0,r=p.length;q<r;q++)try{n=p[q],(g===c||g>n.priority)&&n.restrict.indexOf(f)!=-1&&(i&&(n=o(n,{$$start:i,$$end:l})),b.push(n),m=n)}catch(s){e(s)}return m}function T(b){if(j.hasOwnProperty(b))for(var c,d=a.get(b+k),e=0,f=d.length;e<f;e++)if(c=d[e],c.multiElement)return!0;return!1}function U(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;f(a,function(d,e){"$"!=e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))}),f(b,function(b,f){"class"==f?(E(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function V(a,b,c,d,e,h,i,j){var k,l,m=[],n=b[0],p=a.shift(),q=o(p,{templateUrl:null,transclude:null,replace:null,$$originalDirective:p}),r=A(p.templateUrl)?p.templateUrl(b,c):p.templateUrl,s=p.templateNamespace;return b.empty(),g(r).then(function(g){var o,t,u,w;if(g=ia(g),p.replace){if(u=xa(g)?[]:lb(Z(s,Nd(g))),o=u[0],1!=u.length||o.nodeType!==Ud)throw Ce("tplrt","Template for directive '{0}' must have exactly one root element. {1}",p.name,r);t={$attr:{}},ba(d,b,o);var x=J(o,[],t);v(p.scope)&&P(x),a=x.concat(a),U(c,t)}else o=n,b.html(g);for(a.unshift(q),k=O(a,o,c,e,b,p,h,i,j),f(d,function(a,c){a==o&&(d[c]=b[0])}),l=H(b[0].childNodes,e);m.length;){var y=m.shift(),z=m.shift(),A=m.shift(),B=m.shift(),C=b[0];if(!y.$$destroyed){if(z!==n){var D=z.className;j.hasElementTranscludeDirective&&p.replace||(C=Da(o)),ba(A,zd(z),C),E(zd(C),D)}w=k.transcludeOnThisElement?I(y,k.transclude,B):B,k(l,y,C,d,w,k)}}m=null}),function(a,b,c,d,e){var f=e;b.$$destroyed||(m?m.push(b,c,d,f):(k.transcludeOnThisElement&&(f=I(b,k.transclude,e)),k(l,b,c,d,f,k)))}}function W(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function X(a,b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw Ce("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),a,$(d))}function Y(a,b){var c=d(b,!0);c&&a.push({priority:0,compile:function(a){var b=a.parent(),d=!!b.length;return d&&F.$$addBindingClass(b),function(a,b){var e=b.parent();d||F.$$addBindingClass(e),F.$$addBindingInfo(e,c.expressions),a.$watch(c,function(a){b[0].nodeValue=a})}}})}function Z(a,c){switch(a=td(a||"html")){case"svg":case"math":var d=b.createElement("div");return d.innerHTML="<"+a+">"+c+"</"+a+">",d.childNodes[0].childNodes;default:return c}}function _(a,b){if("srcdoc"==b)return z.HTML;var c=M(a);return"xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b||"ngSrc"==b)?z.RESOURCE_URL:void 0}function aa(a,b,c,e,f){var g=_(a,e);f=s[e]||f;var h=d(c,!0,g,f);if(h){if("multiple"===e&&"select"===M(a))throw Ce("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",$(a));b.push({priority:100,compile:function(){return{pre:function(a,b,i){var j=i.$$observers||(i.$$observers={});if(w.test(e))throw Ce("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var k=i[e];k!==c&&(h=k&&d(k,!0,g,f),c=k),h&&(i[e]=h(a),(j[e]||(j[e]=[])).$$inter=!0,(i.$$observers&&i.$$observers[e].$$scope||a).$watch(h,function(a,b){"class"===e&&a!=b?i.$updateClass(a,b):i.$set(e,a)}))}}}})}}function ba(a,c,d){var e,f,g=c[0],h=c.length,i=g.parentNode;if(a)for(e=0,f=a.length;e<f;e++)if(a[e]==g){a[e++]=d;for(var j=e,k=j+h-1,l=a.length;j<l;j++,k++)k<l?a[j]=a[k]:delete a[j];a.length-=h-1,a.context===g&&(a.context=d);break}i&&i.replaceChild(d,g);var m=b.createDocumentFragment();m.appendChild(g),zd.hasData(g)&&(zd(d).data(zd(g).data()),Ad?(Kd=!0,Ad.cleanData([g])):delete zd.cache[g[zd.expando]]);for(var n=1,o=c.length;n<o;n++){var p=c[n];zd(p).remove(),m.appendChild(p),delete c[n]}c[0]=d,c.length=1}function ca(a,b){return l(function(){return a.apply(null,arguments)},a,b)}function da(a,b,c,d,f,g){try{a(b,c,d,f,g)}catch(h){e(h,$(c))}}function ea(a,b,e,g,i,j){var k;f(g,function(f,g){var j,l,m,n,o=f.attrName,q=f.optional,r=f.mode;switch(ud.call(b,o)||(b[o]=c),r){case"@":b[o]||q||(e[g]=c),b.$observe(o,function(a){e[g]=a}),b.$$observers[o].$$scope=a,b[o]&&(e[g]=d(b[o])
 
Last edited:
https://www.gog.com reverted back to the non-sale layout so this will be a lot harder to reproduce and fix now. Pretty sure there is a serious underlying problem here, though.

Of course, I only just got an e-mail from level two support telling me that they can't reproduce it (naturally, the affected code won't be used until the next site-wide sale) and to contact gog.com for support ... *sigh*

I'll keep the extension disabled for now, don't want it to subtly break even more sites like that - this was annoying enough.
 
As mentioned multiple times here and in my support request:

The GOG summer sale has ended, the sale page is no longer online or accessible. You won't be able to reproduce this on GOG.com until the next site wide sale (Autumn or Winter). I kept repeating to level one support (last week) that this needs to be investigated in a timely manner and they simply made me jump through more hoops instead assuming user error. You are simply too late now.

What I'm certain of its that this is a bug, and a quite frustrating and not entirely harmless one since it interferes with page loading and dynamic requests, in the browser extension itself. It's also very likely that GOG.com's dynamic image loading code isn't the only place where it manifests itself, so finding it and squashing it should still be something on your agenda.

Sadly, you missed the opportunity to do so the easy way and since I stopped using the extension until I know it's fixed, I don't be able to help you track it down any further.
 

aegis

Administrator
Administrator
Hi.
We have actually checked this case last Tuesday. Both me and @George was able to reproduce the same issue in clean browser, incognito mode without any version of Adguard running. Looks like it was actually connected to high server load on the GoG side.
 
Looks like it was actually connected to high server load on the GoG side.
Then it wasn't the same issue. And it had nothing to do with Adguard's Windows application, it's only related to the browser extension.

I sent your support a bunch of screenshots in just about every configuration humanly possible.

Clean browser, no filtering of any sorts: All pictures loaded instantly.
Adguard for Windows running, Browser Extension in Integration mode: Zero pictures loading dynamically.
Adguard for Windows not running, Browser Extension in Standalone mode: Zero pictures loading dynamically.
Adguard for Windows not running, Browser Extension in Standalone mode, all filters disabled: Zero pictures loading dynamically.
Adguard for Windows running, no Browser Extension: All pictures loaded instantly.

Yeah, totally sounding like a GOG server load issue. Blaz and I are simply making bugs up to keep you guys busy.
 
And here are the images, not that I'm expecting to be taken seriously here, but sometimes I like to fight unwinnable fights.
 

Attachments

Had same issue without any version of Adguard. Yeah, sometimes gog.com loaded fine without Adguard. BUT sometimes = 1 time of 20.
The screenshots were taken far off peak hours and on a slow day near the end of the sale after all daily deals had long been revealed. I experienced absolutely no server performance issues during that time whatsoever.

The images loaded 10 out of 10 times without the browser extension and 0 out of 10 times with the browser extension enabled. This was not a server load issue!

Trust me, your level one support made me jump through enough hoops that I got to test this very, very extensively.
 

Boo Berry

Moderator + Beta Tester
Moderator
There's a Black Friday sale going on right now on gog.com - can the issue be reproduce again RIGHT NOW?

@avatar to thread - hunt this one down. ;)
 

Boo Berry

Moderator + Beta Tester
Moderator
Nope, page loads fine right now (Chrome + extension on Linux). So wait for the Winter/Christmas sale. :p

I'll try to keep watch of this one, and will inform as soon as a sale happens and I can reproduce the issue.
 
It's only broken during big, site-wide sales. It was broken during the recent autumn sale and is almost certainly going to be broken by the extension again during the upcoming Winter/Christmas sale. It's fine right now.
 
The gog.com Winter sale is happening right now and the Chrome extension still breaks the site (scroll down on the main site and you should notice that the game images aren't loaded correctly with the extension enabled).

https://www.gog.com/
 
Top