diff --git a/lib/ads/client_side_ad_manager.js b/lib/ads/client_side_ad_manager.js index 41421f330e..9a32b2899a 100644 --- a/lib/ads/client_side_ad_manager.js +++ b/lib/ads/client_side_ad_manager.js @@ -32,6 +32,9 @@ shaka.ads.ClientSideAdManager = class { /** @private {HTMLMediaElement} */ this.video_ = video; + /** @private {ResizeObserver} */ + this.resizeObserver_ = null; + /** @private {number} */ this.requestAdsStartTime_ = NaN; @@ -180,6 +183,16 @@ shaka.ads.ClientSideAdManager = class { this.video_.offsetHeight, viewMode); }); + if ('ResizeObserver' in window) { + this.resizeObserver_ = new ResizeObserver(() => { + const viewMode = document.fullscreenElement ? + google.ima.ViewMode.FULLSCREEN : google.ima.ViewMode.NORMAL; + this.imaAdsManager_.resize(this.video_.offsetWidth, + this.video_.offsetHeight, viewMode); + }); + this.resizeObserver_.observe(this.video_); + } + // Single video and overlay ads will start at this time // TODO (ismena): Need a better inderstanding of what this does. // The docs say it's called to 'start playing the ads,' but I haven't