/*! @license * Shaka Player * Copyright 2016 Google LLC * SPDX-License-Identifier: Apache-2.0 */ goog.provide('shaka.polyfill.IndexedDB'); goog.require('goog.asserts'); goog.require('shaka.log'); goog.require('shaka.polyfill'); /** * @summary A polyfill to patch IndexedDB bugs. */ shaka.polyfill.IndexedDB = class { /** * Install the polyfill if needed. */ static install() { shaka.log.debug('IndexedDB.install'); let disableIDB = false; if (shaka.util.Platform.isChromecast()) { shaka.log.debug('Removing IndexedDB from ChromeCast'); disableIDB = true; } else { try { // This is necessary to avoid Closure compiler over optimize this // block and remove it if it looks like a noop if (window.indexedDB) { disableIDB = false; } } catch (e) { shaka.log.debug( 'Removing IndexedDB due to an exception when accessing it'); disableIDB = true; } } if (disableIDB) { delete window.indexedDB; goog.asserts.assert( !window.indexedDB, 'Failed to override window.indexedDB'); } } }; shaka.polyfill.register(shaka.polyfill.IndexedDB.install);