Skip to content

Commit b0fde65

Browse files
authored
chore: Move wait for encrypted event check to device API (#8833)
This info should be abstract to DRM Engine.
1 parent 82138ab commit b0fde65

File tree

4 files changed

+27
-8
lines changed

4 files changed

+27
-8
lines changed

lib/device/abstract_device.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,13 @@ shaka.device.AbstractDevice = class {
314314
return false;
315315
}
316316

317+
/**
318+
* @override
319+
*/
320+
needWaitForEncryptedEvent(keySystem) {
321+
return keySystem === 'com.apple.fps';
322+
}
323+
317324
/**
318325
* @override
319326
*/

lib/device/default_browser.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,16 @@ shaka.device.DefaultBrowser = class extends shaka.device.AbstractDevice {
187187
}
188188
return super.supportsCbcsWithoutEncryptionSchemeSupport();
189189
}
190+
191+
/**
192+
* @override
193+
*/
194+
needWaitForEncryptedEvent(keySystem) {
195+
if (this.getBrowserEngine() === shaka.device.IDevice.BrowserEngine.GECKO) {
196+
return keySystem.startsWith('com.microsoft.playready.recommendation');
197+
}
198+
return super.needWaitForEncryptedEvent(keySystem);
199+
}
190200
};
191201

192202
shaka.device.DeviceFactory.registerDefaultDeviceFactory(

lib/device/i_device.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,14 @@ shaka.device.IDevice = class {
229229
* @return {boolean}
230230
*/
231231
supportsCbcsWithoutEncryptionSchemeSupport() {}
232+
233+
/**
234+
* Returns true if the platform needs to wait for the encrypted event in order
235+
* to initialize CDM correctly.
236+
* @param {string} keySystem
237+
* @return {boolean}
238+
*/
239+
needWaitForEncryptedEvent(keySystem) {}
232240
};
233241

234242
/**

lib/drm/drm_engine.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -593,14 +593,8 @@ shaka.drm.DrmEngine = class {
593593
) || null) : null;
594594

595595
const keySystem = this.currentDrmInfo_.keySystem;
596-
let needWaitForEncryptedEvent = keySystem == 'com.apple.fps';
597-
const browserEngine =
598-
shaka.device.DeviceFactory.getDevice().getBrowserEngine();
599-
if (browserEngine === shaka.device.IDevice.BrowserEngine.GECKO &&
600-
keySystem.startsWith('com.microsoft.playready.recommendation')) {
601-
needWaitForEncryptedEvent = true;
602-
}
603-
596+
const needWaitForEncryptedEvent = shaka.device.DeviceFactory.getDevice()
597+
.needWaitForEncryptedEvent(keySystem);
604598
/**
605599
* We can attach media keys before the playback actually begins when:
606600
* - If we are not using FairPlay Modern EME

0 commit comments

Comments
 (0)