nl_tokens: Create an instance of this Tech .
pl_tokens: function Html5 ( options , ready ) { classCallCheck ( this , Html5 ) ; var _this = possibleConstructorReturn ( this , _Tech . call ( this , options , ready ) ) ; var source = options . source ; var crossoriginTracks = false ; // Set the source if one is provided // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted) // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source // anyway so the error gets fired. if ( source && ( _this . el_ . currentSrc !== source . src || options . tag && options . tag . initNetworkState_ === 3 ) ) { _this . setSource ( source ) ; } else { _this . handleLateInit_ ( _this . el_ ) ; } if ( _this . el_ . hasChildNodes ( ) ) { var nodes = _this . el_ . childNodes ; var nodesLength = nodes . length ; var removeNodes = [ ] ; while ( nodesLength -- ) { var <mask> = nodes [ nodesLength ] ; var nodeName = node . nodeName . toLowerCase ( ) ; if ( nodeName === 'track' ) { if ( ! _this . featuresNativeTextTracks ) { // Empty video tag tracks so the built-in player doesn't use them also. // This may not be fast enough to stop HTML5 browsers from reading the tags // so we'll need to turn off any default tracks if we're manually doing // captions and subtitles. videoElement.textTracks removeNodes . push ( node ) ; } else { // store HTMLTrackElement and TextTrack to remote list _this . remoteTextTrackEls ( ) . addTrackElement_ ( node ) ; _this . remoteTextTracks ( ) . addTrack ( node . track ) ; _this . textTracks ( ) . addTrack ( node . track ) ; if ( ! crossoriginTracks && ! _this . el_ . hasAttribute ( 'crossorigin' ) && isCrossOrigin ( node . src ) ) { crossoriginTracks = true ; } } } } for ( var i = 0 ; i < removeNodes . length ; i ++ ) { _this . el_ . removeChild ( removeNodes [ i ] ) ; } } _this . proxyNativeTracks_ ( ) ; if ( _this . featuresNativeTextTracks && crossoriginTracks ) { log$1 . warn ( tsml ( _templateObject$2 ) ) ; } // Determine if native controls should be used // Our goal should be to get the custom controls on mobile solid everywhere // so we can remove this all together. Right now this will block custom // controls on touch enabled laptops like the Chrome Pixel if ( ( TOUCH_ENABLED || IS_IPHONE || IS_NATIVE_ANDROID ) && options . nativeControlsForTouch === true ) { _this . setControls ( true ) ; } // on iOS, we want to proxy `webkitbeginfullscreen` and `webkitendfullscreen` // into a `fullscreenchange` event _this . proxyWebkitFullscreen_ ( ) ; _this . triggerReady ( ) ; return _this ; }