flyod Posted June 20, 2020 Share Posted June 20, 2020 (edited) that fixed it! i must have missed that, i'd been pretty busy for a few days and hadn't had time to work on this. unfortunately, like all the other browsers i've tried on this machine, it works fine for 5-10 seconds, then it doesn't redraw the window without some kind of manual intervention, pages render fine youtube videos play sound, but the whole gui remains frozen unless you resize the window, use the menu bar, or switch to another window on top of it then switch back. though unlike newmoon or firefox, k-meleon does update the tab bar and other ui elements, where the others just keep them however they were when you open the browser. Edited June 20, 2020 by flyod Link to comment Share on other sites More sharing options...
siria Posted June 20, 2020 Share Posted June 20, 2020 flyod said: > just a while ago, i realized i can also force the window contents to update by moving > another window in front of it, then clicking back to the palemoon window. > also, if it would help narrow things down, chrome-based browsers has a very similar problem. Glad KM runs again. And no idea, am no expert at all, but could it be the browser is moved by the system into background and some invisible task jumps into foreground? Perhaps some cleaner, indexer, or malware, system plugin, whatever. But just wild guessing. Or a driver prob as you wrote here: https://msfn.org/board/topic/180462-my-browser-builds-part-2/?do=findComment&comment=1182803 Does it happen too if you disable javascript completely? Or set the browser offline? If you save a little static page to disk and open this one only? If browser related, a couple more prefs which may or may not be involved, trying can't harm: layers.low-precision-buffer dom.ipc.plugins.asyncdrawing.enabled = false other ..."ipc" prefs... layout.interruptible-reflow.enabled (true or false?) plugin.scan.plid.all = false kmeleon.plugins.external.load = false browser.sessionstore.max_tabs_undo = 0 javascript.options.jit or ".ion" prefs or "wasm" = false ..."prefetch" prefs (Create manually: "network.dns.disablePrefetchFromHTTPS") network.predictor.enabled profiler.enabled (telemetry collection) ..."workers"... ..."webcomponents"... Link to comment Share on other sites More sharing options...
flyod Posted June 20, 2020 Share Posted June 20, 2020 i tried most of those, they didn't seem to change anything. at this point, im pretty sure the problem is driver or hardware related, i've noticed minor graphical problems in a few other programs. i've tried two versions of the amd drivers, as well as the onboard intel video with the default windows xp video driver, and also got the same result, so it might not be video. ii am using a complety unsuported chipset and processor, this entire computer was never meant to run windows xp 64-bit. i may try installing xp32 just to see if that makes any difference. i tried installing virtualbox, to have a windows xp vm on a windows xp host to see what would happen there, but virtualbox refuses to install, so maybe that means something too. dxdiag tests show everything is fine on the machine, so its quite the mystery. if anyone has any ideas for other tests or benchmarks i could do, i'll give them a try. Link to comment Share on other sites More sharing options...
RainyShadow Posted June 21, 2020 Share Posted June 21, 2020 @flyod Best i can think is a trial install of the oldest supported Windows version (Vista/7/8, but not 10 unless it's some old build) with the official drivers and check how it works there. This should rule out hardware defects. Link to comment Share on other sites More sharing options...
Ben Markson Posted June 21, 2020 Share Posted June 21, 2020 Recently - maybe in the last week or so - the Rotten Tomatoes search results have stopped rendering. Here's an example: https://www.rottentomatoes.com/search?search=firefox#results_movies_tab ...where there should be a single result listed. Under both FF52 original and basilisk52-g4.6.win32-git-20200620-34cf555-uxp-c05d07a68-xpmod, I can see the data is actually there [<script id="movies-json" ... "url":"https://rottentomatoes.com/m/firefox" ... </script>] but it's not getting rendered as actual results. Compare this to FF77 where we see #shadow-root elements appearing in the page's html. It is inside these #shaow-root elements that the results appear. Soo, does anyone know the story behind the webcompoants (aka shadow dom) stuff? I notice that the latest UXP changes included these: - Bug 1426494 - Share more code between nsIDocument and ShadowRoot (43725c726) - Bug 1429656 - Implement ShadowRoot.activeElement (5e7917e2c) - Bug 1430299 - Add DocumentOrShadowRoot interface (bbd59105d) ...which sounds tantalisingly as if it should support the shadow dom stuff. Or am I missing something blindingly obvious? Ben. Link to comment Share on other sites More sharing options...
UCyborg Posted June 21, 2020 Share Posted June 21, 2020 (edited) WebComponents are WIP, might be why stuff breaks in UXP browsers. Turning on dom.webcomponents.enabled in about:config doesn't seem to make a difference in appearance, though the output in the developer console is different. Edited June 21, 2020 by UCyborg Link to comment Share on other sites More sharing options...
RainyShadow Posted June 21, 2020 Share Posted June 21, 2020 On 6/14/2020 at 11:15 PM, RainyShadow said: Can anyone see the images at this page in NM27? Here is a Greasemonkey script to "fix" the images on that page, on myanimelist, and many other sites that use "data-src" to hold the true image address: // ==UserScript== // @name lazyload // @description LAZY Loading Images // @match http://*/* // @match https://*/* // @grant none // @run-at document-end // ==/UserScript== // // LAZY Loading Images // // Handles lazy loading of images in one or more targeted divs, // or in the entire page. It also keeps track of scrolling and // resizing events, and removes itself if the work is done. // // Licensed under the terms of the MIT license. // // (c) 2010 Balázs Galambosi // (function(){ // glocal variables var window = this, instances = {}, winH; // cross browser event handling function addEvent( el, type, fn ) { if ( window.addEventListener ) { el.addEventListener( type, fn, false ); } else if ( window.attachEvent ) { el.attachEvent( "on" + type, fn ); } else { var old = el["on" + type]; el["on" + type] = function() { old(); fn(); }; } } // cross browser event handling function removeEvent( el, type, fn ) { if ( window.removeEventListener ) { el.removeEventListener( type, fn, false ); } else if ( window.attachEvent ) { el.detachEvent( "on" + type, fn ); } } // cross browser window height function getWindowHeight() { if ( window.innerHeight ) { winH = window.innerHeight; } else if ( document.documentElement.clientHeight ) { winH = document.documentElement.clientHeight; } else if ( document.body && document.body.clientHeight ) { winH = document.body.clientHeight; } else { // fallback: winH = 10000; // just load all the images } return winH; } // getBoundingClientRect alternative function findPos(obj) { var top = 0; if (obj && obj.offsetParent) { do { top += obj.offsetTop || 0; top -= obj.scrollTop || 0; } while (obj = obj.offsetParent); // return { "top" : top }; } } // top position of an element var getTopPos = (function() { var dummy = document.createElement("div"); if ( dummy.getBoundingClientRect ) { return function( el ) { return el.$$top || el.getBoundingClientRect().top; }; } else { return function( el ) { return el.$$top || findPos( el ).top; }; } })(); // sorts images by their vertical positions function img_sort( a, b ) { return getTopPos( a ) - getTopPos( b ); } // let's just provide some interface // for the outside world var LazyImg = function( target, offset ) { var imgs, // images array (ordered) last, // last visible image (index) id, // id of the target element self; // this instance offset = offset || 200; // for prefetching if ( !target ) { target = document; id = "$document"; } else if ( typeof target === "string" ) { id = target; target = document.getElementById( target ); } else { id = target.id || "$undefined"; } // return if this instance already exists if ( instances[id] ) { return instances[id]; } // or make a new instance self = instances[id] = { // init & reset init: function() { imgs = null; last = 0; addEvent( window, "scroll", self.fetchImages ); self.fetchImages(); return this; }, destroy: function() { removeEvent( window, "scroll", self.fetchImages ); delete instances[id]; }, // fetches images, starting at last (index) fetchImages: function() { var img, temp, len, i; // still trying to get the target target = target || document.getElementById( id ); // if it's the first time // initialize images array if ( !imgs && target ) { temp = target.getElementsByTagName( "img" ); if ( temp.length ) { imgs = []; len = temp.length; } else return; // fill the array for sorting for ( i = 0; i < len; i++ ) { img = temp[i]; if ( img.nodeType === 1 && img.getAttribute("data-src") ) { // store them and cache current // positions for faster sorting img.$$top = getTopPos( img ); imgs.push( img ); // } else { // if ( img.nodeType === 1 && img.getAttribute("data-image") ) { // store them and cache current // positions for faster sorting // img.$$top = getTopPos( img ); // imgs.push( img ); } } imgs.sort( img_sort ); } // loop through the images while ( imgs[last] ) { img = imgs[last]; // delete cached position if ( img.$$top ) img.$$top = null; // check if the img is above the fold if ( getTopPos( img ) < winH + offset ) { // then change the src img.src = img.getAttribute("data-src"); // img.src = img.getAttribute("data-image"); last++; } else return; } // we've fetched the last image -> finished if ( last && last === imgs.length ) { self.destroy(); } } }; return self.init(); }; // initialize getWindowHeight(); addEvent( window, "load", LazyImg().fetchImages ); addEvent( window, "resize", getWindowHeight ); LazyImg(); window.LazyImg = LazyImg; }()); Shamelessly stolen from Balázs Galambosi, i just replaced "thumb" with "data-src" and added the header. I tried to add an additional replace to account for the epicgames site, but failed miserably... If some JS expert could modify this to work with multiple attributes instead of just "data-src", it would be great. Link to comment Share on other sites More sharing options...
siria Posted June 22, 2020 Share Posted June 22, 2020 RainyShadow said: > Can anyone see the images at this page in NM27? > Here is a Greasemonkey script to "fix" the images on that page, on myanimelist, > and many other sites that use "data-src" to hold the true image address: > I tried to add an additional replace to account for the epicgames site, but failed miserably... Uh oh... I'm used to having such probs with my ancient system+browser, but now slightly shocked to hear that even NM27 can't handle all those images anymore! KMG76 (same engine) is my best hope for the future, sigh. Was forced to help myself and created a little KM1.x macro-script years ago, for exactly the same purpose. Then over time, like you, noticed that data-src is not the only attribute, there are more. Actually have meanwhile collected 12. And yet another catch for my older browser, but luckily not for your NM27 anymore, are multiple targets in one "srcset" etc. It works now, mostly, though not perfect, and I prefer to run it only by command instead of automatically. Have occasionally thought about posting this macro, it's really tiny and almost pure javascript, but am too used to be the only one with such pesky old-browser probs and a like for macros, so never bothered. And surely there are always much better scripts out there, from experts etc. Oh well, guess will post it anyway now, when ready. For other browsers the little script can easily be modified as bookmarklet. Link to comment Share on other sites More sharing options...
Rod Steel Posted June 22, 2020 Share Posted June 22, 2020 (edited) I found that firefox extension YouTube Classic by Mirza Brunjadze https://addons.mozilla.org/en-US/firefox/addon/youtube-classic/ is working in roytam1's Basilisk. Old good YouTube without psychotic Polymer. Unfortunately, there is no XUL analogue known to me for New Moon. Edited June 22, 2020 by Rod Steel 1 Link to comment Share on other sites More sharing options...
jumper Posted June 22, 2020 Share Posted June 22, 2020 (edited) img = temp; img.thumb = img.getAttribute("data-src") || img.getAttribute("data-image"); // add here if ( img.nodeType === 1 && img.getAttribute("thumb") ) { ... img.src = img.getAttribute("thumb"); Edited June 22, 2020 by jumper Link to comment Share on other sites More sharing options...
RainyShadow Posted June 22, 2020 Share Posted June 22, 2020 @jumper It didn't work. https://pastebin.com/m6HdbkkP Link to comment Share on other sites More sharing options...
UCyborg Posted June 22, 2020 Share Posted June 22, 2020 14 hours ago, Rod Steel said: I found that firefox extension YouTube Classic by Mirza Brunjadze https://addons.mozilla.org/en-US/firefox/addon/youtube-classic/ is working in roytam1's Basilisk. Old good YouTube without psychotic Polymer. Unfortunately, there is no XUL analogue known to me for New Moon. Default settings just spoof the user agent, which you can replicate by setting general.useragent.override.youtube.com in about:config to: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) 7 Link to comment Share on other sites More sharing options...
siria Posted June 22, 2020 Share Posted June 22, 2020 @RainyShadow the data-image path on epicgames contains "/offer" which is adblocked since ages Link to comment Share on other sites More sharing options...
RainyShadow Posted June 22, 2020 Share Posted June 22, 2020 @siria it's not only that, but the modification broke what was working before Of course, it would be best if whatever prevents the original scripts on those sites from doing their job was fixed in the browser... 1 Link to comment Share on other sites More sharing options...
siria Posted June 22, 2020 Share Posted June 22, 2020 (edited) @RainyShadow testpage works now: www.epicgames.com/store/en-US/free-games For writing thumb older KM needs img.setAttribute('thumb', x) not just img.thumb // img.thumb = img.getAttribute("data-src") || img.getAttribute("data-image"); // add here var x= img.getAttribute("data-src") || img.getAttribute("data-image") || img.getAttribute('data-srcset') || img.getAttribute('lazyload-src') || img.getAttribute('data-original') || img.getAttribute('src-load') || img.getAttribute('srcabsolute') || img.getAttribute('data-img-src') || img.getAttribute('data-ezsrc') || img.getAttribute('data-lazzy') || img.getAttribute('data-zoom-src') || img.getAttribute('data-pagespeed-lazy-src') || img.getAttribute('nitro-lazy-srcset') || img.getAttribute('nitro-lazy-src') ; if (x) img.setAttribute('thumb', x.split(' ')[0]); ------- ATTENTION users of browsers OLDER as Firefox38 / PM27 / KM-Goanna76: add this too: img.getAttribute('srcset') || (modern browsers handle this one automatically by pure CSS, no JS needed) Edited June 23, 2020 by siria added 2 more attributes and srcset for OLD engines 2 Link to comment Share on other sites More sharing options...
Recommended Posts