I'm having an issue where Firefox (Linux, 96.0.3) will crash after it's been running for a while but no crash report is generated. This is on an older Intel NUC with 2GB … (funda kabanzi)
I'm having an issue where Firefox (Linux, 96.0.3) will crash after it's been running for a while but no crash report is generated. This is on an older Intel NUC with 2GB RAM running Clear Linux and intended to be used as a digital sign. No other applications are running. There is only a single tab loading a single page from localhost. No extensions are installed. The page is a simple layout using CSS grid. Javascript is used to create a slider with four slides, to cycle through a series of videos hosted locally, and periodically check for content updates. Below is the JS in it's entirety.
My feeling is that it's a memory issue, possibly to do with the video playlist, but I've been monitoring memory usage via about:performance and the tab with the sign has never used more than about 5MB. I've also been monitoring the system resources via htop and I've never seen it go higher than about 1000MB. How can I track down this issue?
Thanks in advance!
<script>
const swiper = new Swiper('.swiper', {
autoplay:{delay:10000},
loop:true,
effect: 'fade',
fadeEffect:{crossFade:true}
});
let video = document.querySelector('video'),
source = video.querySelector('source'),
vids = Object.values(JSON.parse('!getVideos')),
i = 1; //start at 1 instead of 0 because the first is already playing
video.addEventListener('ended', function(){
source.src = vids[i++];
if(i == vids.length) i = 0;
video.load();
video.play();
});
//check for content updates
let seconds = 60,
lastUpdate = null;
setInterval(() => {
let req = new Request('~6'),
headers = new Headers();
headers.append('cache-control', 'no-store, must-revalidate');
fetch(req, {method:'GET', headers:headers})
.then(response => response.json())
.then(data => {
let updated = JSON.stringify(data)
if(lastUpdate === null) lastUpdate = updated;
if(lastUpdate !== updated) location.reload();
}).catch(console.error);
}, (seconds * 1000));
</script>