QupZilla / qupzilla

Cross-platform Qt web browser
http://www.qupzilla.com
GNU General Public License v3.0
1.12k stars 347 forks source link

Incompatibility with Twitch? #2612

Open Houkime opened 6 years ago

Houkime commented 6 years ago

This happened about two days ago. Any stream is now just black without sound. Some player buttons irresponsive. Upgraded Arch and qupzilla to no avail.

looks like this (a featured broadcast from the main page): gifcast_180218190123

In Firefox everything is fine, so it's possible that Qupzilla is not implementing some part of HTML5 standard correctly. Probably some change in Twitch player which borked it all for QupZilla.

nowrep commented 6 years ago

Works here (Arch with Qt 5.10.1).

Can you take a look what is in JavaScript console and/or terminal output with QUPZILLA_ENABLE_JS_OUTPUT=1 qupzilla?

Houkime commented 6 years ago
QupZilla: 0 extensions loaded
libpng warning: iCCP: known incorrect sRGB profile
[W] https://player.twitch.tv/js/player.js:28 setStatsEnabled has been deprecated.[W] https://player.twitch.tv/js/player.js:28 setStatsEnabled has been deprecated.[E] https://imasdk.googleapis.com/js/sdkloader/ima3.js:40 Error while parsing the 'allow' attribute: 'autoplay' is an invalid feature name.[E] userscript:_qupzilla_webchannel:432 Uncaught SecurityError: Blocked a frame with origin "https://imasdk.googleapis.com" from accessing a frame with origin "https://www.twitch.tv". The frame being accessed set "document.domain" to "twitch.tv", but the frame requesting access did not. Both must set "document.domain" to the same value to allow access.[E] userscript:_qupzilla_webchannel:432 Uncaught SecurityError: Blocked a frame with origin "https://cdn.krxd.net" from accessing a frame with origin "https://www.twitch.tv". The frame being accessed set "document.domain" to "twitch.tv", but the frame requesting access did not. Both must set "document.domain" to the same value to allow access.QSqlDatabasePrivate::addDatabase: duplicate connection name '94585675137360', old connection removed.
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile

image

ghost commented 6 years ago

Works fine to me as well. Seems the video is just not loaded. And why you expect the buttons to be responsive, when there is no video nor sound!? Just try with clean profile and check the stream connection!

Houkime commented 6 years ago

Found one thing that works - clips. Clips are playing ok. Full videos - no. Streams - no.

Disabling adblocker doesn't help. Switching from HTML5 player doesn't work (switcher button is not responsive)

Houkime commented 6 years ago

image "Show video Stats" in settings

Houkime commented 6 years ago

For comparison, here's what it says in Firefox when there is just no video (stream is offline). image

ghost commented 6 years ago

So what, the buttons on the video clips are working... And please stop comparing with Firefox, it is quite different! You can only do compare with another QtWebEngine browser.

Houkime commented 6 years ago

It's not really about Firefox, I just showed you how Twitch's own diagnostics shows the difference between "no video" and "no backend".

Ok, I sort of fixed it by enabling flushing of HTML5 web content storage on QupZilla close. However, now my dark mode gets reset as well.(( But whatever.

This however doesn't answer the question of how comes that it was a problem in the first place. Was the storage overflowing and, for example, preventing player script to be fully loaded or what? If the HTML5 web content overflowing is a problem maybe QupZilla needs some sort of notification/ overflow-triggered flush or sth? How comes that it is a problem for Twitch but not, for example, for Youtube, which I use even more often? If it really was an overflow, how comes Youtube was unaffected by Twitch web content cancer and still able to load its player? Do they have separated storages?

ghost commented 6 years ago

Nope, the cache is not overflowed. Just as you told some change was made:

Probably some change in Twitch player which borked it all for QupZilla.

So the old source was used from the cache before you flush it.

Regarding the buttons, see how they are looking on another page where the video is not available: QupZilla - inactive controls capture du 2018-02-19 08 10 40 Firefox capture du 2018-02-19 08 14 26 On Fuckingfox they are still active. I don't know what can control there, perhaps the wind noise or the Moon light....

Houkime commented 6 years ago

Understood about controls.

About source not updating if it is already in cache:

So the possible solution to this kind of a problem would be a comparison of source hashsums, right? If hash equals, then the source in storage is up to date. If not - reload. If you could access hashsum or version number without loading the whole source, that wouldn't really hurt performance or anything.

However I'm not sure if providing hashes/versions separately is in industry standards currently.