Features
#4281 Adds a functional testsuite based on the Karma framework @dsilhavy
#4270 Reset MSE when switching codec if changeType() is unstable or unavailable. @matvp91
Improvements
#4225 Define target web and es5 for webpack to make build files ES5 compliant @dsilhavy
#4221 Fix init value for storeLastSettings @minhui-foxtel
#4278 Add support for replacing a text node via MPD patching. @dsilhavy
#4242 Prevent redundant CC parser restarts during Low Latency streams @m-buczek
#4274 Add setting to change mediasource duration from infinity to math.pow(2, 32) @bwallberg
#4249 Compare indices of mediaInfo objects when checking if a track change was rendered. This accounts for content that has no ID attribute for the AdaptationSets @dsilhavy
#4272 Remove babel-preset-env @ShiningTrapez
Bugfixes
#4224 Fix a bug for VTT.js based rendering that causes cues not to be removed after switching to a new source. @dsilhavy
#4279 Do not execute multiple setCurrentTime via waitForReadyState to avoid race condition @dsilhavy
#4239 Remove unusable key sessions when ProtectionController is stopped without waiting for session.close promise to be resolved @dsilhavy
#4246 Fixes for edge case errors that have been captured by Sentry IO around referencing null objects after reset has been called. @littlespex
#4211 Fix types of TestRequest URL property @ondreian
#4268 Added getTargetLiveDelay method to type definitions @matvp91
#4252 Fix wrong attribute in L2A rule @dsilhavy
#4253 Fix error in ProtectionModel_21Jan2015.js when closing key session @dsilhavy
#4223 Fix wrong Typescript definition of updateSource @dsilhavy
#4265 Check for "text/vtt" in catch block of SourceBufferSink.js @dsilhavy
#4273 Use fixed version of Chrome driver as latest one is unavailable @dsilhavy
#Link Upgrade browser-tools CircleCI orb to 1.4.2 to solve Chromedriver issue @dsilhavy
Others
Link Change content steering sample stream URL @dsilhavy
Link Use license that doesnt expire in the Widevine sample @dsilhavy
Link Change MSS sample streams @dsilhavy