obsproject / obs-browser

CEF-based OBS Studio browser plugin
GNU General Public License v2.0
769 stars 217 forks source link

When custom browser dock is in focuse, "Alt+Space" combination freezes BroadcastChannel communication on it #413

Open kravchenkoandrey opened 1 year ago

kravchenkoandrey commented 1 year ago

Operating System Info

Windows 10

Other OS

No response

OBS Studio Version

29.0.2

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/dZfbyqtAbyc0JJki

OBS Studio Crash Log URL

No response

Expected Behavior

I have a custom browser dock that communicates with some browser sources using JS BroadcastChannel object. I expect communication to continue all time, regardless of whether any program menus are open.

Current Behavior

When dock is in focuse, "alt+space" key combination will open a dropdown menu (what's expected) and also make the dock to stop receiving and sending messages through BroadcastChannel object.

Steps to Reproduce

  1. Add a timer browser source to any scene (https://kravchenkoandrey.github.io/obs_tournament_web_overlay/timer)

  2. Add a custom browser dock with a dashboard (https://kravchenkoandrey.github.io/obs_tournament_web_overlay/tournamentDashboard)

  3. Set any time to the top text input (1) and click "play/pause" button image

  4. Timer in the browser source will start updating every second, until you click to any place on the dock and press "alt+space" combination

Anything else we should know?

The issue does not reproduce in the chrome browser. Therefore I think that this is OBS problem.

Warchamp7 commented 1 year ago

Noting here on Windows that Space is not even required for this issue. Simply hitting Alt after clicking Play/Pause causes this freeze. Updates resume as soon as another input is made. This can include clicking the dock, another part of OBS, swapping focus to an entirely different app, or even hitting Alt a second time.

Also interestingly of note, ALL OBS windows stop reacting to hover state changes during this freeze, including Windows title decorations. I suspect something in the Qt event or input processing.

lindenkron commented 1 week ago

This is still occurring as of 30.2.0 beta4.

  1. Add custom browser dock (google.com)
  2. Add browser source (twitch.tv, something that plays/moves)
  3. Click inside of your custom browser dock
  4. Press 'Alt'.

The Twitch.tv browser source rendering will now freeze. Audio still plays.

RytoEX commented 1 week ago

This is still occurring as of 30.2.0 beta4.

1. Add custom browser dock (google.com)

2. Add browser source (twitch.tv, something that plays/moves)

3. Click inside of your custom browser dock

4. Press 'Alt'.

The Twitch.tv browser source rendering will now freeze. Audio still plays.

Do you need to press (and release) Alt or press (and hold) Alt? Does this also happen in cefclient?

lindenkron commented 1 week ago

This is still occurring as of 30.2.0 beta4.

1. Add custom browser dock (google.com)

2. Add browser source (twitch.tv, something that plays/moves)

3. Click inside of your custom browser dock

4. Press 'Alt'.

The Twitch.tv browser source rendering will now freeze. Audio still plays.

Do you need to press (and release) Alt or press (and hold) Alt? Does this also happen in cefclient?

Unsure what you mean by "does it happen in cefclient?".

It's a single alt press. Then it freezes. Next alt press, it unfreezes.

I've tested latest v29, v28 v27 - and the latest v30.2 beta and latest v30.1

All same behaviour.

RytoEX commented 1 week ago

Unsure what you mean by "does it happen in cefclient?".

cefclient is the CEF client implementation example. I'm asking if it also experiences the same issue as a point of verifying if this occurs in CEF itself or if it's due to something in our implementation.