The recent Chromium update for the Browser sources has killed some of the apps that I use on the stream, and it's because non-visible Browser Sources are now treated as being 'in the background.
When using Javascript's setTimeout method to schedule execution, recent versions of Chrome enforce a minimum of 1 second between delays as a way of managing battery life when multiple tabs are open in the browser and they want to continuously run code. This move was very controversial and has broken tons of apps all over the internet, effectively stopping them from executing when they're in the background and forcing them to "catch up" once they come back to the foreground.
Basically, I have some web apps on the stream which animate continuously, but the BrowserSource isn't always visible. Since the recent OBS Studio update, when the Browser Source becomes visible, the animations are out of time and have to awkwardly catch up while onlookers recoil in disgust. Previously, the animations were always running, even when the source wasn't visible, so this wasn't an issue.
I think that Browser Source tabs should automatically be launched with Chromium's "--disable-background-timer-throttling" flag, or this option should be togglable on each source's Properties page. OBS already has tools for automatically reloading Browser Sources when they become visible and shutting them down when they become invisible, if CPU usage is a concern.
Here's some more information on the subject. https://developers.google.com/web/updates/2017/03/background_tabs In the meantime, I guess I'm going to try to re-write my apps so that I can reload them whenever they become visible without them looking so ugly while they reload. That way, at least the animations won't be all out-of-sync when the source becomes visible, again. v_v
When using Javascript's setTimeout method to schedule execution, recent versions of Chrome enforce a minimum of 1 second between delays as a way of managing battery life when multiple tabs are open in the browser and they want to continuously run code. This move was very controversial and has broken tons of apps all over the internet, effectively stopping them from executing when they're in the background and forcing them to "catch up" once they come back to the foreground.
Basically, I have some web apps on the stream which animate continuously, but the BrowserSource isn't always visible. Since the recent OBS Studio update, when the Browser Source becomes visible, the animations are out of time and have to awkwardly catch up while onlookers recoil in disgust. Previously, the animations were always running, even when the source wasn't visible, so this wasn't an issue.
I think that Browser Source tabs should automatically be launched with Chromium's "--disable-background-timer-throttling" flag, or this option should be togglable on each source's Properties page. OBS already has tools for automatically reloading Browser Sources when they become visible and shutting them down when they become invisible, if CPU usage is a concern.
Here's some more information on the subject. https://developers.google.com/web/updates/2017/03/background_tabs In the meantime, I guess I'm going to try to re-write my apps so that I can reload them whenever they become visible without them looking so ugly while they reload. That way, at least the animations won't be all out-of-sync when the source becomes visible, again. v_v