twitchdev / issues

Issue tracker for third party developers.
Apache License 2.0
73 stars 6 forks source link

Issues with Panel Extensions loading on profile pages #798

Open BarryCarlyon opened 1 year ago

BarryCarlyon commented 1 year ago

Brief description

It seems there has been a change where panel extensions do not load if the page is not scrolled down when a viewer loads a given Twitch page of a channel that is live.

If a viewer later scrolls down it's possible that window.Twitch.ext.viewer.sessionToken is null

Thus resulting in an extension not loading as expected as the expected token is missing.

helixToken is also blank

How to reproduce

image

I then used inspector to interrogate window.Twitch.ext.viewer.sessionToken and it was null

Expected behavior

Access Token to be present on scroll down if scroll down is not immedite

BarryCarlyon commented 1 year ago

Additional Error Case:

blrk-matze commented 10 months ago

+1 It looks like there is something wrong with lazy loading. From my pov two things are annoying with this bug:

  1. The loading of a panel is hardly predictable. What I tested:

    • If you open a live channel with 16:9/desktop screen the panel does not load
    • If you open a live channel with 16:9/desktop Screen and you scroll down the panel does load
    • If you open a live channel in portrait mode the panel does load only if the screen is high enough otherwise does not
    • If you navigate from overview to stream page the panel does load every time (independent of live status or screen) - because of zoom animation
    • If the extension was loaded before (even on different channel) the extension loads immediately
  2. For best user experience I want my extension to load (and run some scripts) at the point the viewer opens the stream. This is currently only possible with onscreen extension, but I don't want to waste the streamers slot for this.

deemonrider commented 2 weeks ago

+1

This issue also occurs on mobile devices when you open the extension, lock your phone, and then unlock it after an hour. (Tested on IOS)