diff --git a/common/lib/xmodule/xmodule/js/src/video/01_initialize.js b/common/lib/xmodule/xmodule/js/src/video/01_initialize.js index 1ff8b591b7f4..c43ab4b1693e 100644 --- a/common/lib/xmodule/xmodule/js/src/video/01_initialize.js +++ b/common/lib/xmodule/xmodule/js/src/video/01_initialize.js @@ -90,7 +90,7 @@ function(VideoPlayer, i18n, moment, _) { _youtubeApiDeferred = null, _oldOnYouTubeIframeAPIReady; - const setupOnYouTubeIframeAPIReadyMaxCalls=3; + const setupOnYouTubeIframeAPIReadyMaxCalls=5; Initialize.prototype = methodsDict; @@ -174,30 +174,31 @@ function(VideoPlayer, i18n, moment, _) { throw new Error('Too many OnYouTubeIframeAPIReady retries after TypeError...giving up.'); } - _oldOnYouTubeIframeAPIReady = window.onYouTubeIframeAPIReady || undefined; + try { + _oldOnYouTubeIframeAPIReady = window.onYouTubeIframeAPIReady || undefined; - window.onYouTubeIframeAPIReady = function() { - window.onYouTubeIframeAPIReady.resolve(); - }; + window.onYouTubeIframeAPIReady = function() { + window.onYouTubeIframeAPIReady.resolve(); + }; - try { window.onYouTubeIframeAPIReady.resolve = _youtubeApiDeferred.resolve; + window.onYouTubeIframeAPIReady.done = _youtubeApiDeferred.done; + + if (_oldOnYouTubeIframeAPIReady) { + window.onYouTubeIframeAPIReady.done(_oldOnYouTubeIframeAPIReady); + } } catch (e) { console.error('Error while trying to resolve the Deferred object responsible for calling OnYouTubeIframeAPIReady callbacks.'); console.error('window.onYouTubeIframeAPIReady is ' + window.onYouTubeIframeAPIReady); console.error(e); if (e instanceof TypeError) { - setupOnYouTubeIframeAPIReady(); // Try again up to defined max calls. + setTimeout(setupOnYouTubeIframeAPIReady, 500); // Try again up to defined max calls. } else { throw e; } } - window.onYouTubeIframeAPIReady.done = _youtubeApiDeferred.done; - if (_oldOnYouTubeIframeAPIReady) { - window.onYouTubeIframeAPIReady.done(_oldOnYouTubeIframeAPIReady); - } }; // If a Deferred object hasn't been created yet, create one now. It will diff --git a/requirements/edx/appsembler.txt b/requirements/edx/appsembler.txt index 701427816a91..197d2a6ceb22 100644 --- a/requirements/edx/appsembler.txt +++ b/requirements/edx/appsembler.txt @@ -14,9 +14,9 @@ django-hijack-admin==2.1.10 honeycomb-beeline==2.12.1 # Patched upstream packages +https://github.com/mitodl/edx-sga/archive/refs/tags/v0.22.0.tar.gz https://github.com/edx-solutions/xblock-google-drive/archive/589d9f51f9b.tar.gz # v0.2.0 but the repo has no tags https://github.com/appsembler/edx-ora2/archive/2.7.6-appsembler.1.tar.gz -https://github.com/appsembler/edx-sga/archive/v0.11.0.appsembler2.tar.gz https://github.com/appsembler/edx-proctoring/archive/v2.4.0-appsembler1.tar.gz # Tahoe plugins and customizations