Source: lib/polyfill/encryption_scheme.js

/*! @license
 * Shaka Player
 * Copyright 2016 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */

goog.provide('shaka.polyfill.EncryptionScheme');

goog.require('shaka.polyfill');
goog.require('shaka.util.Platform');

/**
 * @summary A polyfill to add support for EncryptionScheme queries in EME.
 * @see https://wicg.github.io/encrypted-media-encryption-scheme/
 * @see https://github.com/w3c/encrypted-media/pull/457
 * @see https://github.com/shaka-project/eme-encryption-scheme-polyfill
 * @export
 */
shaka.polyfill.EncryptionScheme = class {
  /**
   * Install the polyfill if needed.
   *
   * @suppress {missingRequire}
   * @export
   */
  static install() {
    // Skip polyfill for PlayStation 4 and SkyQ devices due to known crashes
    // caused by unsupported encryptionScheme handling. These platforms do not
    // require the polyfill, and forcing encryptionScheme processing can result
    // in playback crashes.
    if (shaka.util.Platform.isPS4() || shaka.util.Platform.isSkyQ()) {
      return;
    }

    EncryptionSchemePolyfills.install();
  }
};

// Install at a low priority so that other EME polyfills go first.
shaka.polyfill.register(shaka.polyfill.EncryptionScheme.install, -2);