@@ -798,20 +798,23 @@ class Html5 extends Tech {
798
798
799
799
/* HTML5 Support Testing ---------------------------------------------------- */
800
800
801
- /**
802
- * Element for testing browser HTML5 media capabilities
803
- *
804
- * @type {Element }
805
- * @constant
806
- * @private
807
- */
808
- Html5 . TEST_VID = document . createElement ( 'video' ) ;
809
- const track = document . createElement ( 'track' ) ;
801
+ if ( Dom . isReal ( ) ) {
810
802
811
- track . kind = 'captions' ;
812
- track . srclang = 'en' ;
813
- track . label = 'English' ;
814
- Html5 . TEST_VID . appendChild ( track ) ;
803
+ /**
804
+ * Element for testing browser HTML5 media capabilities
805
+ *
806
+ * @type {Element }
807
+ * @constant
808
+ * @private
809
+ */
810
+ Html5 . TEST_VID = document . createElement ( 'video' ) ;
811
+ const track = document . createElement ( 'track' ) ;
812
+
813
+ track . kind = 'captions' ;
814
+ track . srclang = 'en' ;
815
+ track . label = 'English' ;
816
+ Html5 . TEST_VID . appendChild ( track ) ;
817
+ }
815
818
816
819
/**
817
820
* Check if HTML5 media is supported by this browser/device.
@@ -828,7 +831,7 @@ Html5.isSupported = function() {
828
831
return false ;
829
832
}
830
833
831
- return ! ! Html5 . TEST_VID . canPlayType ;
834
+ return ! ! ( Html5 . TEST_VID && Html5 . TEST_VID . canPlayType ) ;
832
835
} ;
833
836
834
837
/**
@@ -895,9 +898,7 @@ Html5.supportsNativeTextTracks = function() {
895
898
* - False otherwise
896
899
*/
897
900
Html5 . supportsNativeVideoTracks = function ( ) {
898
- const supportsVideoTracks = ! ! Html5 . TEST_VID . videoTracks ;
899
-
900
- return supportsVideoTracks ;
901
+ return ! ! ( Html5 . TEST_VID && Html5 . TEST_VID . videoTracks ) ;
901
902
} ;
902
903
903
904
/**
@@ -908,9 +909,7 @@ Html5.supportsNativeVideoTracks = function() {
908
909
* - False otherwise
909
910
*/
910
911
Html5 . supportsNativeAudioTracks = function ( ) {
911
- const supportsAudioTracks = ! ! Html5 . TEST_VID . audioTracks ;
912
-
913
- return supportsAudioTracks ;
912
+ return ! ! ( Html5 . TEST_VID && Html5 . TEST_VID . audioTracks ) ;
914
913
} ;
915
914
916
915
/**
@@ -1026,11 +1025,15 @@ Html5.prototype.featuresNativeVideoTracks = Html5.supportsNativeVideoTracks();
1026
1025
Html5 . prototype . featuresNativeAudioTracks = Html5 . supportsNativeAudioTracks ( ) ;
1027
1026
1028
1027
// HTML5 Feature detection and Device Fixes --------------------------------- //
1029
- const canPlayType = Html5 . TEST_VID . constructor . prototype . canPlayType ;
1028
+ const canPlayType = Html5 . TEST_VID && Html5 . TEST_VID . constructor . prototype . canPlayType ;
1030
1029
const mpegurlRE = / ^ a p p l i c a t i o n \/ (?: x - | v n d \. a p p l e \. ) m p e g u r l / i;
1031
1030
const mp4RE = / ^ v i d e o \/ m p 4 / i;
1032
1031
1033
1032
Html5 . patchCanPlayType = function ( ) {
1033
+ if ( ! canPlayType ) {
1034
+ return ;
1035
+ }
1036
+
1034
1037
// Android 4.0 and above can play HLS to some extent but it reports being unable to do so
1035
1038
if ( browser . ANDROID_VERSION >= 4.0 && ! browser . IS_FIREFOX ) {
1036
1039
Html5 . TEST_VID . constructor . prototype . canPlayType = function ( type ) {
0 commit comments