diff --git a/ui/controls.js b/ui/controls.js index 0d61b7583a..27feb20c94 100644 --- a/ui/controls.js +++ b/ui/controls.js @@ -264,6 +264,16 @@ shaka.ui.Controls = class extends shaka.util.FakeEventTarget { this.castProxy_ = null; } + if (this.spinnerContainer_) { + this.videoContainer_.removeChild(this.spinnerContainer_); + this.spinnerContainer_ = null; + } + + if (this.clientAdContainer_) { + this.videoContainer_.removeChild(this.clientAdContainer_); + this.clientAdContainer_ = null; + } + if (this.localPlayer_) { await this.localPlayer_.destroy(); this.localPlayer_ = null; @@ -525,6 +535,8 @@ shaka.ui.Controls = class extends shaka.util.FakeEventTarget { * @export */ getClientSideAdContainer() { + goog.asserts.assert( + this.clientAdContainer_, 'No client ad container after destruction!'); return this.clientAdContainer_; } @@ -983,7 +995,7 @@ shaka.ui.Controls = class extends shaka.util.FakeEventTarget { /** @private */ addBufferingSpinner_() { - /** @private {!HTMLElement} */ + /** @private {HTMLElement} */ this.spinnerContainer_ = shaka.util.Dom.createHTMLElement('div'); this.spinnerContainer_.classList.add('shaka-spinner-container'); this.videoContainer_.appendChild(this.spinnerContainer_); @@ -1140,7 +1152,7 @@ shaka.ui.Controls = class extends shaka.util.FakeEventTarget { * @private */ addClientAdContainer_() { - /** @private {!HTMLElement} */ + /** @private {HTMLElement} */ this.clientAdContainer_ = shaka.util.Dom.createHTMLElement('div'); this.clientAdContainer_.classList.add('shaka-client-side-ad-container'); shaka.ui.Utils.setDisplay(this.clientAdContainer_, false);