twitchdev / issues

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

No extensions load #204

Open marcandrews opened 4 years ago

marcandrews commented 4 years ago

Brief description

I have had a small percentage of users reporting that my extension does not load. It seems like onContext is not firing so both the config and viewer modes are affected (I have not tried dashboard).

It seems to only affect Windows PCs and multiple browsers (Chrome and Firefox); it even happens when Chrome is in incognito mode.

I had one user try the Prime Subscription and Loot Reminder extension and other extensions and they also failed to load, so it seems many/all extensions may be affected. This user also reported that they did not have any antivirus, firewall or ad blockers installed.

The strange part is if the user tries another device, for example their mobile phone browser in desktop mode, it works.

How to reproduce

On Windows PC, using Chrome or Firefox, install and activate any extension.

Expected behavior

The extension loads and can be seen while live.

Screenshots

image0

This is with the Prime Subscription and Loot Reminder extension installed and the cursor hovering over the stream. No reminder is shown.

Additional context or questions

n/a

lleadbet commented 4 years ago

Do you see any error messages in the console or network tab of the dev tools?

marcandrews commented 4 years ago

@lleadbet, I was able to do some investigation with one of my users @SmileyTheDem0n ...

We tried Chrome, Chrome Incognito, Edge, Edge InPrivate, and even Chrome started with the --disable-extensions and --disable-plugins flags and no extension would load. We even tried the Prime Subscription and Loot reminder extension and that failed to load as well.

Screen Shot 2020-10-09 at 7 37 26 PM

There were a few console warnings. The Failed to execute 'postMessage' on 'DOMWindow' might be of interest, but this occurs even when extensions load successfully. There were no failed network requests either.

We even tried disabling Windows Security but that did not help.

There was nothing of interest in the taskbar notification area as well.

Interestingly the extension did load on his Android phone using Chrome in desktop mode.

Screenshot_20201009-193955 (the green, grey and black bars at the top and bottom of the stream are rendered by the extension)

His phone was connected to the same router as his PC, so I do not believe anything interesting is happening at the internet/router level.

Again, I have quite a few users experiencing this but I am at a loss as to what could be causing this issue.

Any help would be greatly appreciated.

marcandrews commented 3 years ago

I just had another user report this issue. He cannot even configure the Prime Subscription and Loot Reminder extension

config

marcandrews commented 3 years ago

I was able to do some debugging with a streamer experiencing this issue.

The streamer's computer is an HP Pavilion G6 (Intel Core i3 (2nd Gen) 2350M / 2.3 GHz / 4 GB DDR3 SDRAM), so modest performance to say the least.

In the console, we saw:

Extension Warning (xxxxx): Extension Helper Library Not Loaded

Even with the most minimal extension possible, we still saw the Extension Helper Library Not Loaded warning.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="width=device-width,initial-scale=1,shrink-to-fit=no"
    />
    <meta name="theme-color" content="#000000" />
    <title>Overlay Expert Twitch Extension</title>
    <script src="https://extension-files.twitch.tv/helper/v1/twitch-ext.min.js"></script>
  </head>
  <body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root">
      <h1>Hi</h1>
    </div>
  </body>
</html>

We looked for twitch-ext.min.js in the Chrome Dev Tools Network tab and it would always take more than 1 second to load, and sometimes over 4 seconds, and it would never cache even with Dev Tools cache enabled. Is this due to the low powered computer or network performance?

I also looked into vendor-9474b8ae68bcd9e18367.js (the source of the warning) and noticed that it only allows 1 second for the helper to load.

Can this timeout be increased to allow for low powered computers and network performance?

Is there another architecture that does not depend on timeouts the extension platform can use? Timeouts usually do not do well where performance is lacking (older computers, mobile devices, third worlds); would listening to a combination of iframe.onload, iframe.contentDocument.readyState and the postMessage from the helper be better?

marcandrews commented 3 years ago

@lleadbet I found the problem.

If the time on the user's computer is configured incorrectly (i.e. wrong time zone), no extension will load.

I have confirmed with several users on Windows PCs that correcting the time on their computer resolves the issue and allows extensions to load.

marcandrews commented 2 years ago

Any movement on this @jbulava?