Index: third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/polyfill/firefox-polyfill.js |
diff --git a/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/polyfill/firefox-polyfill.js b/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/polyfill/firefox-polyfill.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ce241af362a873af0ba490013790a5be365b9fac |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/polyfill/firefox-polyfill.js |
@@ -0,0 +1,23 @@ |
+(function(){ |
+ if(navigator.userAgent.toLowerCase().indexOf('firefox') > -1){ |
+ |
+ // Work around https://bugzilla.mozilla.org/show_bug.cgi?id=1282142 |
+ // Firefox does not correctly reject the Clear Key session types it does not support |
+ var _requestMediaKeySystemAccess = navigator.requestMediaKeySystemAccess.bind( navigator ); |
+ |
+ navigator.requestMediaKeySystemAccess = function( keysystem, configurations ) |
+ { |
+ if ( keysystem !== 'org.w3.clearkey' ) return _requestMediaKeySystemAccess( keysystem, configurations ); |
+ |
+ var supported_configurations = configurations.filter( function( c ) { |
+ |
+ return !c.sessionTypes || ( c.sessionTypes.length === 1 && c.sessionTypes[ 0 ] === 'temporary' ); |
+ |
+ } ); |
+ |
+ if ( supported_configurations.length === 0 ) return Promise.reject( new DOMException( 'None of the requested configurations were supported.' ) ); |
+ |
+ return _requestMediaKeySystemAccess( keysystem, supported_configurations ); |
+ } |
+ } |
+}()); |