/* exported bootstrapFrom */ // `mode` may be "iframe" or not specified. function bootstrapFrom( mainSelector, mode ) { if ( mode === "iframe" && window.parent === window ) { jQuery( mainSelector + " .result" ) .attr( "class", "result warn" ) .text( "This test should be run in an iframe. Open ../gh-1764-fullscreen.html." ); jQuery( mainSelector + " .toggle-fullscreen" ).remove(); return; } var fullscreenSupported = document.exitFullscreen || document.exitFullscreen || document.msExitFullscreen || document.mozCancelFullScreen || document.webkitExitFullscreen; function isFullscreen() { return !!( document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement ); } function requestFullscreen( element ) { if ( !isFullscreen() ) { if ( element.requestFullscreen ) { element.requestFullscreen(); } else if ( element.msRequestFullscreen ) { element.msRequestFullscreen(); } else if ( element.mozRequestFullScreen ) { element.mozRequestFullScreen(); } else if ( element.webkitRequestFullscreen ) { element.webkitRequestFullscreen(); } } } function exitFullscreen() { if ( document.exitFullscreen ) { document.exitFullscreen(); } else if ( document.msExitFullscreen ) { document.msExitFullscreen(); } else if ( document.mozCancelFullScreen ) { document.mozCancelFullScreen(); } else if ( document.webkitExitFullscreen ) { document.webkitExitFullscreen(); } } function runTest() { var dimensions; if ( !fullscreenSupported ) { jQuery( mainSelector + " .result" ) .attr( "class", "result success" ) .text( "Fullscreen mode is not supported in this browser. Test not run." ); } else if ( !isFullscreen() ) { jQuery( mainSelector + " .result" ) .attr( "class", "result warn" ) .text( "Enable fullscreen mode to fire the test." ); } else { dimensions = jQuery( mainSelector + " .result" ).css( [ "width", "height" ] ); dimensions.width = parseFloat( dimensions.width ).toFixed( 3 ); dimensions.height = parseFloat( dimensions.height ).toFixed( 3 ); if ( dimensions.width === "700.000" && dimensions.height === "56.000" ) { jQuery( mainSelector + " .result" ) .attr( "class", "result success" ) .text( "Dimensions in fullscreen mode are computed correctly." ); } else { jQuery( mainSelector + " .result" ) .attr( "class", "result error" ) .html( "Incorrect dimensions; " + "expected: { width: '700.000', height: '56.000' };
" + "got: { width: '" + dimensions.width + "', height: '" + dimensions.height + "' }." ); } } } function toggleFullscreen() { if ( isFullscreen() ) { exitFullscreen(); } else { requestFullscreen( jQuery( mainSelector + " .container" )[ 0 ] ); } } $( mainSelector + " .toggle-fullscreen" ).on( "click", toggleFullscreen ); $( document ).on( [ "webkitfullscreenchange", "mozfullscreenchange", "fullscreenchange", "MSFullscreenChange" ].join( " " ), runTest ); runTest(); }