Add Property Button to Inspect Sources #528
Open
WizardCM wants to merge 1 commit from
WizardCM/inspect-browser-source into master
pull from: WizardCM/inspect-browser-source
merge into: gh-obsproject:master
gh-obsproject:master
gh-obsproject:archive/20261011T065042Z-force/pull/546
gh-obsproject:archive/20261007T214921Z-force/pull/539
gh-obsproject:archive/20260923T145539Z-rescue/blastorg/fix/source_tearing
gh-obsproject:archive/20260923T145539Z-rescue/SoprachevAK/fix/browser-premultiplied-srgb-blending
gh-obsproject:archive/20260923T145539Z-rescue/Arkkis/media-access-checkbox
gh-obsproject:archive/20260923T145539Z-rescue/WizardCM/inspect-browser-source
gh-obsproject:archive/20260923T145539Z-rescue/PatTheMav/browser-focus-fix
gh-obsproject:archive/20260923T145539Z-rescue/fauxnik/source-visibility
gh-obsproject:archive/20260923T145539Z-rescue/exeldro/browser_signal
gh-obsproject:archive/20260923T145539Z-rescue/exeldro/browser_size
gh-obsproject:archive/20260923T145539Z-rescue/tytan652/proc_handler_api
gh-obsproject:2.23.x
gh-obsproject:archive/20260923T145539Z-rescue/tt2468/fix/browser-logging
gh-obsproject:archive/20260923T145539Z-rescue/alyssais/zoom
gh-obsproject:2.22.x
gh-obsproject:hack-and-a-half
gh-obsproject:on-accelerated-paint2
gh-obsproject:archive/20260923T145539Z-rescue/cg2121/browser-defaults
gh-obsproject:test
gh-obsproject:archive/20260923T145539Z-rescue/tags/20.3.8.603
gh-obsproject:archive/20260923T145539Z-rescue/tags/20.2.28.571
gh-obsproject:archive/20260923T145539Z-rescue/tags/20.2.13.559
gh-obsproject:archive/20260923T145539Z-rescue/tags/20.2.14.563
gh-obsproject:archive/20260923T145539Z-rescue/tags/20.2.3.551
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.12.17.537
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.10.24.511
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.10.16.502
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.10.14.499
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.9.21.487
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.9.21.483
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.9.18.466
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.9.8.457
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.8.19.444
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.7.14.421
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.7.1.416
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.6.17.410
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.6.7.407
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.6.7.401
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.5.29.397
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.5.29.398
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.5.27.394
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.5.26.390
gh-obsproject:qt-message-pump
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.4.21.384
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.17.363
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.13.359
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.13.356
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.8.351
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.6.348
gh-obsproject:archive/20260923T145539Z-rescue/StreamElements/flush_cookies_on_exit
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.3.6.346
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.2.26.339
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.2.18.331
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.2.12.327
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.2.10.323
gh-obsproject:panel-update-final
gh-obsproject:panel-update
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.1.28.319
gh-obsproject:audio_support
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.1.8.305
gh-obsproject:archive/20260923T145539Z-rescue/tags/19.1.6.301
gh-obsproject:archive/20260923T145539Z-rescue/tags/18.12.25.297
gh-obsproject:archive/20260923T145539Z-rescue/tags/18.8.21.183
gh-obsproject:archive/20260923T145539Z-rescue/tags/18.8.8.165
gh-obsproject:archive/20260923T145539Z-rescue/tags/18.8.2.151
gh-obsproject:archive/20260923T145539Z-rescue/tags/18.7.25.133
gh-obsproject:osx
No reviewers
Labels
Clear labels
area/accessibility
Improves accessibility of the program
area/dependency
Issue is in external library or dependency, not OBS itself
Confirmed
Crash Report
Delayed
Merging has been delayed due to an issue
Design Issue
There is an issue with incorporating this pull request's design. It may take some time to finalize.
Duplicate
Feedback required
Issue does not contain enough information or is missing the template
Good first issue
New to contributing to OBS? Start here!
kind/bug
Categorizes issue or PR as related to a bug.
kind/cleanup
Non-breaking change which makes code smaller or more readable
kind/enhancement
Enhancements are not bugs or new features but can improve usability or performance.
platform/linux
platform/macos
platform/windows
priority/high
This is an important PR
Question
Request for Comments
More feedback & discussion is requested
Seeking Other Contributors
This PR needs help from any other developers who are willing to give a crack at this code
Seeking Testers
Won't Fix / By Design
No labels
area/accessibility
area/dependency
Confirmed
Crash Report
Delayed
Design Issue
Duplicate
Feedback required
Good first issue
kind/bug
kind/cleanup
kind/enhancement
platform/linux
platform/macos
platform/windows
priority/high
Question
Request for Comments
Seeking Other Contributors
Seeking Testers
Won't Fix / By Design
Milestone
Clear milestone
No items
No milestone
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
gh-obsproject/obs-browser!528
Loading…
Reference in a new issue
No description provided.
Delete branch "WizardCM/inspect-browser-source"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
Add an "Inspect" button to the Browser Source's Properties window to open Chrome Dev Tools.
This ensures feature parity between Browser Sources and Browser Docks (they have the same accessible via the context menu).
Motivation and Context
Extensive research, testing, and rebuilding for #523 by pkv, Lina and myself has determined that Chromium have deprecated the old list page accessible from the Remote Debugging address, and restoring the functionality in any way will be a major maintenance burden going forward. This is due to the HTML file they ship containing a favicon that spans the entire link, assuming the file is shipped at all - CEF purposefully doesn't as part of Chrome Runtime.
Additionally, testing by myself and Warchamp confirms unreliable loading of
chrome://inspect- on my machines it can take as long as 3 minutes to be able to even list pages, which is unacceptable.Therefore, after thinking about how best to serve overlay developers in a meaningful way, rather than some kind of janky workaround using the Remote Debugging
/json/listendpoint, ultimately I decided the best solution is the simplest one.This also means users no longer have to launch OBS with
--remote-debugging-port=1234 --remote-allow-origins=http://localhost:1234to be able to access Dev Tools, improving both security and usability.How Has This Been Tested?
On Windows 10, open the Properties window for a Browser Source, scroll down, and click Inspect.
Types of changes
Checklist:
For Linux, guarding this behind a more recent version of CEF is required.
Only Wayland testing since CEF is already good with X11.
With the PR as is
Non-flatpak (bugged, crash at some point):

Flatpak (no decoration):

CEF 127 is still too dependent on X11 and it really goes wrong.
Flatpak doesn't crash since it does not find an X11 server (which also explain the lack of decoration).
With CEF 148 and also #523 #517
Non-flatpak:

Flatpak:

CEF 148 (with the chrome runtime) seems to be fine
Huh, that's weird. I'll version gate it.
During my testing it seems like the inspect window is another avenue for OBS to potentially crash on shutdown due to race conditions between CEF and OBS itself (crash originates in
BrowserShutdown()).It's probably not an issue with this PR per-se, but it means we're adding another avenue for people to potentially end up with unclean shutdowns.
@ -430,0 +433,4 @@[](CefRefPtr<CefBrowser> cefBrowser) {CefWindowInfo windowInfo;windowInfo.bounds.width = 900;windowInfo.bounds.height = 700;Is there any logic behind those values or were those just randomly chosen?
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.