Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit 23a68b6

Browse files
MortimerGorobluemarvin
authored andcommitted
What until Youtube video has loaded data to request a video quality change. (#1659)
1 parent 9be94c1 commit 23a68b6

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

  • app/src/main/assets/web_extensions/webcompat_youtube

app/src/main/assets/web_extensions/webcompat_youtube/main.js

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,15 @@ try {
6060
viewportEl.parentNode.removeChild(viewportEl);
6161
}
6262

63-
onNavigate(0);
63+
// Wait until video has loaded the first frame to force quality change.
64+
// This prevents the infinite spinner problem.
65+
// See https://github.com/MozillaReality/FirefoxReality/issues/1433
66+
var video = document.getElementsByTagName("video")[0];
67+
if (video.readyState >= 2) {
68+
onNavigate(0);
69+
} else {
70+
video.addEventListener("loadeddata", () => onNavigate(0));
71+
}
6472
});
6573

6674
window.addEventListener('pushstate', onNavigate);
@@ -275,7 +283,7 @@ try {
275283
log(`Changed quality from "${currentQuality}" to "${newBestQuality}"`);
276284
};
277285

278-
window.onYouTubePlayerReady = evt => {
286+
window.wrappedJSObject.onYouTubePlayerReady = evt => {
279287
log('`onYouTubePlayerReady` called');
280288
window.ytImprover(1);
281289
evt.addEventListener('onStateChange', 'ytImprover');
@@ -284,9 +292,9 @@ try {
284292

285293
window.addEventListener('spfready', () => {
286294
log('`spfready` event fired');
287-
if (typeof window.ytplayer === 'object' && window.ytplayer.config) {
295+
if (window.wrappedJSObject.ytplayer && window.wrappedJSObject.ytplayer.config) {
288296
log('`window.ytplayer.config.args.jsapicallback` set');
289-
window.ytplayer.config.args.jsapicallback = 'onYouTubePlayerReady';
297+
window.wrappedJSObject.ytplayer.config.args.jsapicallback = 'onYouTubePlayerReady';
290298
}
291299
});
292300

0 commit comments

Comments
 (0)