From 2bdc326ed648df4855faf6a0add815356cdeab7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Velad=20Galv=C3=A1n?= Date: Wed, 22 Sep 2021 22:43:37 +0200 Subject: [PATCH] fix(ads): Add ResizeObserver to CS ad manager. (#3652) Closes: #3638 --- lib/ads/client_side_ad_manager.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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