pepper.com platforms don't work with seamonkey anymore

Discussion of bugs in Seamonkey
Post Reply
Kermit00
Posts: 7
Joined: January 6th, 2018, 6:24 am

pepper.com platforms don't work with seamonkey anymore

Post by Kermit00 »

Since yesterday the pepper.com shopping deal platforms stops working with seamonkey (tested 2.53.4 + 2.53.5b1 Linux 64bit with fresh profile): A lot of elements are just grey rectangles and I cannot click accept-buttons in the cookie-dialog.
Other browsers (firefox, chromium, opera) works without problems on this plattform.
Last edited by Kermit00 on November 7th, 2020, 1:27 am, edited 1 time in total.
hardys
Posts: 290
Joined: August 7th, 2015, 9:15 am

Re: pepper.com plattforms don't work with seamonkey anymore

Post by hardys »

Seems to work with SM 2.53.6b1pre from WG9s on WIN10 64bit

http://www.wg9s.com/comm-253/
Kermit00
Posts: 7
Joined: January 6th, 2018, 6:24 am

Re: pepper.com platforms don't work with seamonkey anymore

Post by Kermit00 »

Linux 64 again don't work here: Did you test a national community like e.g. https://www.hotukdeals.com/
Kermit00
Posts: 7
Joined: January 6th, 2018, 6:24 am

Re: pepper.com platforms don't work with seamonkey anymore

Post by Kermit00 »

SM 2.57 from WG9s works, but a couple of my addons don't work there :(
hardys
Posts: 290
Joined: August 7th, 2015, 9:15 am

Re: pepper.com platforms don't work with seamonkey anymore

Post by hardys »

I have tested the nl and german sites without problems.
Kermit00 wrote:Did you test a national community like e.g. https://www.hotukdeals.com/
This site also just works fine here with 2.53.6
n0spam
Posts: 47
Joined: November 7th, 2020, 7:56 am

Re: pepper.com platforms don't work with seamonkey anymore

Post by n0spam »

Yeah, looks like a SeaMonkey bug - it doesn't send cookies with requests for scripts of type "module", so the server returns 403, so the site breaks. Ironically, my old firefox 53 does send cookies and the server returns 200, but the browser doesn't understand the new syntax used in those scripts.
As a workaround, you can use a userscript that replaces scripts of type "module" with regular scripts. Something like this:

Code: Select all

https://pastebin.com/G3cqS2fz
Source, in case pastebin goes down:

Code: Select all

// ==UserScript==
// @id             hotukdeals.com_fix_sm_module@z117::gmscripts
// @namespace      z117::gmscripts
// @name           hotukdeals.com_fix_sm_module
// @version        1.0
// @author         z117
// @description    HotUkDeals.com - fix loading of module scripts in SeaMonkey.
// @include        *://www.hotukdeals.com/
// @include        *://*.hotukdeals.com/
// @include        *://www.hotukdeals.com/*
// @include        *://*.hotukdeals.com/*
// @run-at         document-start
// ==/UserScript==


+function()
{

function nl_to_arr(nl)
{
	if ( ! nl) { return []; }
	return nl instanceof Array ? nl : [].concat.apply([], nl);
}

new MutationObserver(function(mutations, observer){
	observer.disconnect();
	try {
		mutations.forEach(function(m){
			if (m.type !== "childList") { return; }
			nl_to_arr(m.addedNodes).forEach(function(n){
				if ( ! n || n.nodeType !== 1 /*ELEMENT_NODE*/) { return; }
				if (n.nodeName.toLowerCase() !== "script") { return; }
				if ( ! n.src || n.type !== "module") { return; }
				var elm = document.createElement("script");
				elm.type = "text/javascript";
				elm.src = n.src;
				(document.head || document.body || document.documentElement).appendChild(elm);
			});
		});
	} finally {
		observer.observe(document, {childList: true, subtree: true});
	}
}).observe(document, {childList: true, subtree: true});

}();
Kermit00
Posts: 7
Joined: January 6th, 2018, 6:24 am

Re: pepper.com platforms don't work with seamonkey anymore

Post by Kermit00 »

Thanks for the workaround! Indeed, with the userscript activated I'm able to accept the cookie-dialog. But the missing elemtens/functions on the sites (grey rectangles) stay. So there seems to be more bugs/incompatibilities. :(
frg
Posts: 1361
Joined: December 15th, 2015, 1:20 pm

Re: pepper.com platforms don't work with seamonkey anymore

Post by frg »

www.hotukdeals.com needs dom.moduleScripts.enabled/set to true but this still has a few problems. Might even crash on some sites. It is on my short list but even the short list is a bit long :)
n0spam
Posts: 47
Joined: November 7th, 2020, 7:56 am

Re: pepper.com platforms don't work with seamonkey anymore

Post by n0spam »

Right, that workaround was for 2.53.2 which I didn't notice I was using at the time. Sorry for that. With 2.53.4 it's a bit different (and messy) story. It does send cookies for modules, so it gets those scripts just fine, but it also loads legacy versions of those module scripts, and this gets in the way later and you end up with a mix of old and new code calling each other, which doesn't go well (i get "ReferenceError: jQuery is not defined" in the console). So to make this work in 2.53.4, you also need to block scripts coming from "hotukdeals.com/assets/js/legacy/". You'll need an adblocker for this because this can't be done with a userscript. And if you want to use another site from their network, e.g. promodescuentos.com, you'll need to repeat all the steps for it, i.e. add 4 @include entries to the userscript and block scripts coming from "promodescuentos.com/assets/js/legacy/". Honestly, at this point I'd rather use a different browser version.

Also, I screwed up a bit with the @include directives in the userscript. They should go like this:

Code: Select all

// @include        *://hotukdeals.com/
// @include        *://*.hotukdeals.com/
// @include        *://hotukdeals.com/*
// @include        *://*.hotukdeals.com/*
n0spam
Posts: 47
Joined: November 7th, 2020, 7:56 am

Re: pepper.com platforms don't work with seamonkey anymore

Post by n0spam »

frg wrote:http://www.hotukdeals.com needs dom.moduleScripts.enabled/set to true but this still has a few problems. Might even crash on some sites. It is on my short list but even the short list is a bit long :)
If you ever get around to this, here's something to sort out.
Enabled (set to true): loads the files (obviously), doesn't send cookies, and gets 403 because they use captcha: https://imgur.com/a/XQ9bIRj
Disabled (set to false): still loads the files, and sends cookies: https://imgur.com/a/OtJf5oD
Kermit00
Posts: 7
Joined: January 6th, 2018, 6:24 am

Re: pepper.com platforms don't work with seamonkey anymore

Post by Kermit00 »

Sorry, now I productivly changed to 2.53.6, but the userscript don't work anymore (also corrected the @include directives). I'm using Greasemonkey to mess up with userscripts.
But thanks for the tipp with "dom.moduleScripts.enabled"! With that workaround everything seems to work again! All jquery errors disappeared.
n0spam
Posts: 47
Joined: November 7th, 2020, 7:56 am

Re: pepper.com platforms don't work with seamonkey anymore

Post by n0spam »

Well, since their legacy scripts seem to work just fine and only missing jquery, a simpler "solution" is to just load it and leave everything else alone. So here's a shorter version of the userscript that just loads jquery: https://pastebin.com/pMsDh9Yy

Code: Select all

// ==UserScript==
// @id             hotukdeals.com_fix_sm_module@z117::gmscripts
// @namespace      z117::gmscripts
// @name           HotUkDeals.com - fix loading of jquery in SeaMonkey.
// @version        1.0
// @author         z117
// @description    
// @include        *://hotukdeals.com/
// @include        *://*.hotukdeals.com/
// @include        *://hotukdeals.com/*
// @include        *://*.hotukdeals.com/*
// @run-at         document-start
// ==/UserScript==


+function()
{

new MutationObserver(function(mutations, observer){
	var ins = document.head || document.body || document.documentElement;
	if ( ! ins) { return; }
	observer.disconnect();
	var elm = document.createElement("script");
	elm.type = "text/javascript";
	elm.src = "/assets/js/jquery.js";
	ins.appendChild(elm);
}).observe(document, {childList: true, subtree: true});

}();
As for the userscript not working in 2.53.6, I have no idea, sorry. :) Maybe Greasemonkey uses a different matching algorithm for @includes (I'm using Scriptish) so the script doesn't get called at all. We could try to make it work, but only if *you* want to, but I think at this point it's not really necessary because it seems like you're already good with 2.53.6.
Kermit00
Posts: 7
Joined: January 6th, 2018, 6:24 am

Re: pepper.com platforms don't work with seamonkey anymore

Post by Kermit00 »

Thanks for your efforts! There are some other sites especially more and more forums, that are incompatible with seamonkey too (and dom.moduleScripts.enabled don't solve the problems): I can scroll endless down, but just empty page and no more text/replies are shown. I suppose it is caused by advertising.
I think it's not a good idea to do workarounds for every site with userscripts. I hope that these issues will be fixed in future releases. I also contacted pepper.com, because google online translations also don't work on the communities anymore.
Post Reply