OBS Browser/CEF Plans, Progress & Timeline #3853
Replies: 12 comments 35 replies
-
Status Update: As of OBS 26.1.2:
As of OBS 27.0:
And then there's Windows..Let me be up front: we absolutely want to update CEF as soon as possible. Unfortunately, we were unable to get it updated in time for OBS 27.0 due to complications with the shared texture API provided in the unmerged CEF PR. The original PR for CEF was designed for Chrome 79, and was adapted to work with Chrome 85. There are builds made for Chrome 87, but they don't seem to work, and we were unable to get it to work with Chrome 89 either. Likely something changed on the Chrome side. We plan to revisit the CEF update after 27.0 is out, to try and get it working for 27.1. |
Beta Was this translation helpful? Give feedback.
-
It would generally be amazing if the CEF version could be updated more frequently than once every 2 years or so. There is a bunch of JS language features missing due to the large gap in between update. One of the bigger features missing in 75 is the "?." operator, also known as Optional Chaining which was added in Chromium 80, this creates dependency on using babel.js to create larger, more unoptimized JS files if one wants their site to work in OBS. |
Beta Was this translation helpful? Give feedback.
-
Please update at least to version 88 of Chromium. The latest version is 95, by the way. The planned Version 85 still does not support clip-path path() which makes SVG animations nearly impossible in OBS. https://caniuse.com/mdn-css_properties_clip-path_path See this example, which is not supported in obs: |
Beta Was this translation helpful? Give feedback.
-
Is Update to Chromium 85 / CEF 4183 on Windows still slated for ballpark of OBS 27.2? Just curious if this got pushed back further at this point as assuming with 27.1 just coming out and didn't seem to include this update that perhaps it's on the very near horizon? |
Beta Was this translation helpful? Give feedback.
-
Got it - thanks so much for all y'all do! |
Beta Was this translation helpful? Give feedback.
-
Status Update: As some noticed, we did not manage to squeeze a CEF update into OBS 27.1. However, I come bearing really, really great news: We've successfully built & tested CEF 4638 (Chromium 95) with all the bells & whistles we require. 🎉🎉
As mentioned before, Windows was a very big challenge. Thanks to the amazing efforts of @pkviet, @VodBox, @PatTheMav and the original author of the CEF PR that we use for shared textures, things are looking up. As it stands, there are a couple of smaller blockers we still need to work on, but I am hopeful that this will ship in OBS 27.2 (on all platforms). 🚀 PRs to keep an eye on:
Changes that still need to be made/tested:
Other issues may come up as we test, and I will post this as we go. |
Beta Was this translation helpful? Give feedback.
-
Status Update: The CEF 95 update has been merged for OBS 27.2. 🎉🎉All our tests on Windows, macOS and Linux have passed with flying colours. The code has now been merged, and we're all set to ship CEF 95. We did run into small quicks that needed to be fixed along the way, but everything was easily solvable. CI successfully built with existing versions so if we do have to revert for any reason (which we likely won't have to), then those parts are safe too. Next steps:
I will post an update on this comment when the two above tasks are done. |
Beta Was this translation helpful? Give feedback.
-
Is there any plans for browser source on arm linux? I'm actually trying to make it work using Spotify pre built CEF binary, this is my first time digging in a project, i hope i can make it work. |
Beta Was this translation helpful? Give feedback.
-
The cef binaried are uploaded to Fastly, but the source code is at: https://github.com/obsproject/cef. Is there an instruction to let people know how to build the binaries from source code? I'm trying to build one for linux arm64. |
Beta Was this translation helpful? Give feedback.
This comment was marked as off-topic.
This comment was marked as off-topic.
-
Are there any plans for CEF updates (was hoping to see one with OBS 30)? I see the last update was from 2022, almost two years ago. OBS Browser is on CEF version based on Chromium 103, yet the latest version of CEF is now on Chromium 119. there are a lot of vulnerability fixes, performance improvements, and features added over the past two years. |
Beta Was this translation helpful? Give feedback.
-
Status Update: I bring great news! Thanks to fantastic work by @reitowo and others, we're on track to upgrade CEF in OBS to a modern version once again! We've successfully built & tested CEF 6478 (Chromium 126) with all the bells & whistles we require.This does not mean we'll be shipping an OBS update with a new Chromium immediately, as we'd like to perform extensive testing across all platforms and architectures. Technical details for those curious can be found at the below obs-browser PR, and I'll provide a summary of the story so far (& the next steps). For many years, we've been using an unofficial patch to CEF and adapting it where we could for each new Chromium release. Chromium 103 & 104 made dramatic changes to their rendering backend, removing the paths that the patches depended on. We continued reaching out to various parties to find someone willing to rewrite the patches with modern technologies, without much luck. The reason the patch was unofficial in the first place is because Chromium itself didn't really handle the use case, and the CEF maintainers didn't want to have to maintain code that could fundamentally break every single major Chromium version, which is absolutely understandable. Earlier this year, @reitowo posted in the abandoned CEF PR to check if any progress had been made, and as there was no response, they got to work. Less than two weeks later, they posted an initial implementation, and since then we've coordinated as best we could to get all the necessary bits in place, eventually resulting in eight Chromium PRs which were successfully merged throughout February and March. As the Chromium maintainers coordinated to get the API fleshed out and the changes merged, we began work updating our own code in preparation. Eventually, in April, the changes to CEF were merged, meaning new official CEF builds going forward would provide what we needed. This meant it was time to start in-depth testing, and it's where we hit a minor snag. Crashes on shutdown when "Control audio via OBS" was enabled - which @pkviet promptly tracked down and fixed in May. With all known side effects taken care of, it was time to make our first non-Windows builds, as building CEF takes a while & there's no point repeatedly building something you can't yet use. CEF 126 builds were created last week for all 3 platforms, and I went ahead and performed the tests across Windows, macOS & Linux, verified everything works, and pushed the changes to the PR. So, next steps?
Thanks to everyone for your patience thus far. I'm very excited about being able to bump CEF more frequently going forward & providing improved tools for web overlay developers. |
Beta Was this translation helpful? Give feedback.
-
This page is designed to show current progress/plans when it comes to improvements, fixes, and feature parity when it comes to the Browser Source, Custom Browser Docks & Service Integration. Questions/discussion welcome below.
Previously I was posting status updates in the #development channel on Discord but felt they'd be very easily lost.
Note that actual implementation details, PR reviews & bugs should be posted on the respective Issues or PRs.
Edit June 9, 2024: Big update in regards to future CEF upgrades, including successful testing of Chromium 126 across Windows, macOS, Linux. See here for the full writeup.
Edit September 1, 2022: OBS 28.0 was released with Chromium 103. Changes are on hold due to changes in Chromium that make our existing patches for shared textures incompatible.
Edit November 28, 2021: See here regarding OBS 27.2.
Edit April 18, 2021: See here regarding 26.1.2 and 27.0.
Current capabilities (as of OBS 27.1)
Version
Feature parity
Major plans for the browser source
Note: For each of the features described below, every item has to be done for a feature to be ready. Estimates are hopeful, and will likely change. There is no actual, concrete timeline.
Browser Panels & Service integration on macOS macOS Browser Panel Support obs-browser#197
Estimated: OBS 26.2 / 27
Note: It's possible that these two capabilities will be added in separate versions
Browser Panels & Service integration on Linux Add Linux browser panel support [CEF 4280 / Chromium 87] obs-browser#254
Estimated: OBS 27
Note: It's possible that these two capabilities will be added in separate versions
Update to Chromium 95 / CEF 4638 on Windows, macOS and Linux
Individual steps
Update to Chromium 95 / CEF 4638
The main purpose here is to use a more recent version of Chromium.
Shared textures overhaul (& hardware acceleration) on Windows complex
Test disabling hardware acceleration and opening 5+ browser sources
Test downgrading from newer CEF to older build (when downgrading OBS itself) - mostly cookies
Upload new CEF builds to Fastly for both macOS and Windows
Have any questions? Post them below!
Beta Was this translation helpful? Give feedback.
All reactions