Skip to content

OBS Browser 2.26.8 for OBS merge 32.1.1#53

Open
aleksandr-voitenko wants to merge 31 commits into
streamlabsfrom
obs_merge_32.1.1
Open

OBS Browser 2.26.8 for OBS merge 32.1.1#53
aleksandr-voitenko wants to merge 31 commits into
streamlabsfrom
obs_merge_32.1.1

Conversation

@aleksandr-voitenko

Copy link
Copy Markdown
Collaborator

No description provided.

PatTheMav and others added 30 commits August 20, 2025 16:59
Metal does not require the "rect" effect and can use the default
effect just like D3D11.
The zeroed memory hack only applies on Windows if using CEF older than
3770, which we no longer support.
Assume we're always using CEF 5060 or newer.
Assume we're always using CEF 5060 or newer.
Assume we're always using CEF 5060 or newer.

The check regarding ENABLE_WASHIDDEN is left intact on purpose so that
it can be removed separately.
ENABLE_WASHIDDEN is defined to 1 for CEF 90+ (4430+), which we always
use. Remove it and any code that would not be executed due to this
value.
Remove ENABLE_LOCAL_FILE_URL_SCHEME.

ENABLE_LOCAL_FILE_URL_SCHEME is defined to 0 for CEF 95+ (4638+), which
we always use. Remove it and any code that would not be executed due to
this value.
Assume CEF 5060 is the oldest build we support.
This makes it explicit what the data pointer actually is.
Copies the changes from obs-studio, and applies the new formatting.

See:
obsproject/obs-studio@6282384
obsproject/obs-studio@b3ab792
These changes don't actually do anything as there is no .run-gersemi on
this submodule, but keeps the file in sync with obs-studio where it's
from.
This piece of code was mistakenly removed in 93e3d1e
When the underlying CEF browser instance is required to close (either
because the widget itself is being destroyed or because the associated
function was called explicitly) a specific sequence of events needs to
be ensured and also needs to block the thread it was called on.

This is necessary to ensure that CEF's own shutdown code can run to
completion before Qt continues with its own widget destruction and
cleanup code.

This change splits the procedure into 3 separate steps, each scheduled
to run in-order on the local event loop to simulate a "serial dispatch
queue":

1. Detach the window used by CEF from the Qt view hierarchy to prevent
   CEF from closing the main OBS Studio window
2. Initiate the actual browser closure
3. Reset the Qt widget reference kept by the browser client and quit
   the local event loop.

Step 3 is either executed after the "OnBeforeClose" lifetime event is
signaled by CEF or automatically after 1000 ms to limit the maximum of
time the UI is allowed to keep the user waiting.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants